Tôi đang cố gắng thực hiện mô hình DQL trên một trò chơi của phòng tập thể dục openAI. Nhưng nó cho tôi lỗi sau.
TypeError: len không được xác định rõ cho các biểu tượng kéo. (activ_3 / Danh tính: 0) Vui lòng gọi
x.shape
thay vìlen(x)
thông tin hình dạng.
Tạo môi trường tập thể dục:
ENV_NAME = 'CartPole-v0'
env = gym.make(ENV_NAME)
np.random.seed(123)
env.seed(123)
nb_actions = env.action_space.n
Mô hình của tôi trông như thế này:
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())
Lắp mô hình đó vào mô hình DQN từ keral-rl như sau:
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)
Lỗi là từ dòng này:
dqn = DQNAgent(model=model, nb_actions=nb_actions, memory=memory, nb_steps_warmup=10, target_model_update=0.001, policy=policy)
Tôi đang sử dụng keras-rl == 0.4.2 và tenorflow == 2.1.0. Dựa trên các câu trả lời khác, tôi cũng đã thử dùng tenorflow == 2.0.0-beta0 nhưng nó không giải quyết được lỗi.
Ai đó có thể vui lòng giải thích cho tôi tại sao tôi phải đối mặt với lỗi này? và làm thế nào để giải quyết nó?
Cảm ơn bạn.
env
là một môi trường trò chơi phòng tập thể dục để đào tạo mô hình RL. len
đang diễn ra ở đâu đó trong thư viện TensorFlow. Tôi đã cập nhật câu hỏi để biết thêm chi tiết.
env
gì Nơi nào đanglen
diễn ra? Hay nó là một phần của cuộc gọi lại?