Estoy tratando de implementar un modelo DQL en un juego de gimnasio openAI. Pero me está dando el siguiente error.
TypeError: len no está bien definido para los tensores simbólicos. (activación_3 / Identidad: 0) Llame en
x.shapelugar delen(x)para obtener información sobre la forma.
Crear un ambiente de gimnasio:
ENV_NAME = 'CartPole-v0'
env = gym.make(ENV_NAME)
np.random.seed(123)
env.seed(123)
nb_actions = env.action_space.n
Mi modelo se ve así:
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())
Ajuste de ese modelo al modelo DQN de keral-rl de la siguiente manera:
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)
El error es de esta línea:
dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=10, target_model_update=0.001, policy=policy)
Estoy usando keras-rl == 0.4.2 y tensorflow == 2.1.0. Basado en otras respuestas, también probé tensorflow == 2.0.0-beta0 pero no resuelve el error.
¿Alguien puede explicarme por qué me enfrento a este error? ¿Y como resolverlo?
Gracias.
enves un entorno de juego de gimnasia para entrenar el modelo RL. lenestá teniendo lugar en algún lugar de la biblioteca TensorFlow. He actualizado la pregunta para más detalles.
env? ¿Dónde estálenteniendo lugar? ¿O es parte de las devoluciones de llamada?