Я намагаюся реалізувати модель DQL в одній грі openAI gym. Але це дає мені наступну помилку.
TypeError: len недостатньо визначений для символічних тензорів. (activation_3 / Identity: 0) Будь ласка, зателефонуйте,
x.shape
а неlen(x)
для інформації про форму.
Створення атмосфери тренажерного залу:
ENV_NAME = 'CartPole-v0'
env = gym.make(ENV_NAME)
np.random.seed(123)
env.seed(123)
nb_actions = env.action_space.n
Моя модель виглядає так:
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())
Встановлення цієї моделі в модель DQN від keral-rl наступним чином:
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)
Помилка з цього рядка:
dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=10, target_model_update=0.001, policy=policy)
Я використовую keras-rl == 0.4.2 і tensorflow == 2.1.0. На основі інших відповідей я також спробував tensorflow == 2.0.0-beta0, але це не вирішує помилку.
Чи може мені хтось пояснити, чому я стикаюся з цією помилкою? і як це вирішити?
Дякую.
env
- це ігрове середовище для тренажерних залів для тренування моделі RL. len
відбувається десь у бібліотеці TensorFlow. Я оновив питання для отримання більш детальної інформації.
env
? Деlen
відбувається? Або це частина зворотних дзвінків?