Сборка агента усиленного обучения DQNAgent вызывает неизвестную проблемуPython

Программы на Python
Anonymous
Сборка агента усиленного обучения DQNAgent вызывает неизвестную проблему

Сообщение Anonymous »

Мне хотелось немного углубиться в усиленное обучение, поэтому я начал с довольно простого примера «Cartpole», следуя практическому руководству.
Ссылка на исходный код руководства на Github (идентична моей)
/>К сожалению, я застрял с одной и той же ошибкой в ​​течение двух дней и не могу найти аналогичную проблему/решение на основе TypeError. В сообщении об ошибке говорится следующее:
*Файл «C:\Users\Felix\Dropbox\Pendelcart.py», строка 40, в dqn = build_agent(model, action)
Файл «C:\Users\Felix\Dropbox\Pendelcart.py», строка 29, в build_agent dqn = DQNAgent(model=model, Memory=memory, policy=policy, nb_actions =actions,< /p>
Файл «C:\Users\Felix\AppData\Roaming\Python\Python38\site-packages\rl\agents\dqn.py», строка 108, в init if hasattr(model. вывод, 'len') и len(model.output) > 1:
Файл "C:\Users\Felix\AppData\Roaming\Python\Python38\site-packages\tensorflow\ python\keras\engine\keras_tensor.py", строка 240, в len поднять TypeError('Символические входы/выходы Keras не выполняются '
TypeError: символические входы/выходы Keras не реализуются < strong>len. Возможно, вы пытаетесь передать символические входные/выходные данные Keras в API TF, который не регистрирует диспетчеризацию, что не позволяет Keras автоматически преобразовать вызов API в лямбда-слой в функциональной модели. получите повышение, если попытаетесь напрямую подтвердить символический ввод/вывод.*
Я искренне надеюсь, что кто-нибудь здесь сможет мне помочь. Я работаю с Pyhton 3.8, Tensorflow 2.4.0 и Keras 2.4.3. Полный исходный код прилагается ниже.
Заранее спасибо и счастливых праздников.
import gym
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.optimizers import Adam
from rl.agents import DQNAgent
from rl.policy import BoltzmannQPolicy
from rl.memory import SequentialMemory

def build_model(states, actions):
model = Sequential()
# model.add(Input(shape=(1,states)))
model.add(Flatten(input_shape=(1,states)))
model.add(Dense(24,activation='relu'))
model.add(Dense(24,activation='relu'))
model.add(Dense(actions,activation='linear'))
return model

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

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

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

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


Подробнее здесь: https://stackoverflow.com/questions/653 ... wn-problem

Вернуться в «Python»