Saya mencoba menerapkan model DQL pada satu permainan gym openAI. Tapi itu memberi saya kesalahan berikut.
TypeError: len tidak didefinisikan dengan baik untuk Tensor simbolik. (aktivasi_3 / Identitas: 0) Silakan hubungi
x.shape
daripadalen(x)
untuk informasi bentuk.
Menciptakan lingkungan gym:
ENV_NAME = 'CartPole-v0'
env = gym.make(ENV_NAME)
np.random.seed(123)
env.seed(123)
nb_actions = env.action_space.n
Model saya terlihat seperti ini:
model = Sequential()
model.add(Flatten(input_shape=(1,) + env.observation_space.shape))
model.add(Dense(16))
model.add(Activation('relu'))
model.add(Dense(nb_actions))
model.add(Activation('linear'))
print(model.summary())
Menyesuaikan model itu ke model DQN dari keral-rl sebagai berikut:
policy = EpsGreedyQPolicy()
memory = SequentialMemory(limit=50000, window_length=1)
dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=10, target_model_update=0.001, policy=policy)
dqn.compile(Adam(lr=1e-3), metrics=['mse', 'mae'])
dqn.fit(env, nb_steps=5000, visualize=False, verbose=3)
Kesalahan berasal dari baris ini:
dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=10, target_model_update=0.001, policy=policy)
Saya menggunakan keras-rl == 0.4.2 dan tensorflow == 2.1.0. Berdasarkan jawaban lain, saya juga mencoba tensorflow == 2.0.0-beta0 tetapi tidak menyelesaikan kesalahan.
Bisakah seseorang tolong jelaskan kepada saya mengapa saya menghadapi kesalahan ini? dan bagaimana cara mengatasinya?
Terima kasih.
env
adalah lingkungan permainan olahraga untuk melatih model RL. len
sedang berlangsung di suatu tempat di perpustakaan TensorFlow. Saya telah memperbarui pertanyaan untuk lebih jelasnya.
env
? Dimanalen
tempatnya? Atau itu bagian dari panggilan balik?