Keras-rl2 错误 AttributeError: 'Sequential' 对象没有属性 '_compile_time_distribution_strategy'

问题描述

当使用以下代码时,我收到此错误 AttributeError: 'Sequential' object has no attribute '_compile_time_distribution_strategy' with keras-rl2。

搜索了整个互联网,但找不到解决方案。

import gym
import tensorflow
print("Import Done")

env = gym.make("CartPole-v0")
states = env.observation_space.shape[0]
print(env.observation_space.shape)
actions = env.action_space.n
print(actions)

print(states)

print(env.observation_space)
print(env.action_space)



def build_model(nstates,nactions):
    model = tensorflow.keras.models.Sequential()
    model.add(tensorflow.keras.layers.Flatten(input_shape=(1,states)))
    model.add(tensorflow.keras.layers.Dense(24,activation='relu'))
    model.add(tensorflow.keras.layers.Dense(24,activation='relu'))
    model.add(tensorflow.keras.layers.Dense(actions,activation='linear'))
    return model


model = build_model(states,actions)
# print(model.summary())

from rl.agents import DQNAgent
from rl.policy import BoltzmannQPolicy
from rl.memory import SequentialMemory


def build_agent(model,actions):
    policy = BoltzmannQPolicy()
    memory = SequentialMemory(limit=50000,window_length=1)
    dqn = DQNAgent(model=model,memory=memory,policy=policy,nb_actions=actions,nb_steps_warmup=10,target_model_update=1e-2)
    return dqn


dqn = build_agent(model,actions)
dqn.compile(tensorflow.keras.optimizers.Adam(learning_rate=1e-3),metrics=['mae'])
dqn.fit(env,nb_steps=50000,visualize=False,verbose=1)

完整错误如下

Traceback (most recent call last):
  File "D:\Python Project\reinforceMent_Leran\main.py",line 64,in <module>
    dqn.compile(tensorflow.keras.optimizers.Adam(learning_rate=1e-3),metrics=['mae'])
  File "D:\Python Project\rl_learn\lib\site-packages\rl\agents\dqn.py",line 167,in compile
    self.target_model = clone_model(self.model,self.custom_model_objects)
  File "D:\Python Project\rl_learn\lib\site-packages\rl\util.py",line 16,in clone_model
    clone.set_weights(model.get_weights())
  File "D:\Python Project\rl_learn\lib\site-packages\tensorflow\python\keras\engine\training_v1.py",line 175,in get_weights
    self._compile_time_distribution_strategy)
AttributeError: 'Sequential' object has no attribute '_compile_time_distribution_strategy'

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)