Python 找不到可以处理输入的数据适配器:<;类别';numpy.uint8'>&书信电报;类别';非类型'>;-人工智能健身房中的Keras强化学习

Python 找不到可以处理输入的数据适配器:<;类别';numpy.uint8'>&书信电报;类别';非类型'>;-人工智能健身房中的Keras强化学习,python,tensorflow,keras,reinforcement-learning,openai-gym,Python,Tensorflow,Keras,Reinforcement Learning,Openai Gym,我一直在尝试训练一名代理使用Deep Q网络从开放式Ai健身房环境玩Atari游戏,但在尝试使用开放式Ai环境提供的当前状态时遇到了一个错误,在本例中,该状态是Atari'Breakout-ram-v0 当试图使用给定状态的神经网络预测q_值时,会出现此问题,具体线路如下所示 for index, (state, action, reward, next_state, terminal) in enumerate(batch): current_q_values = self.

我一直在尝试训练一名代理使用Deep Q网络从开放式Ai健身房环境玩Atari游戏,但在尝试使用开放式Ai环境提供的当前状态时遇到了一个错误,在本例中,该状态是Atari'Breakout-ram-v0

当试图使用给定状态的神经网络预测q_值时,会出现此问题,具体线路如下所示

for index, (state, action, reward, next_state, terminal) in enumerate(batch):

        current_q_values = self.model.predict(state[0])

其中给出的错误是

Traceback (most recent call last):

  File "C:\Users\Documents\RL Project\Atari_DQN\atari_dqn_3.py", line 232, in <module>
    atari()

  File "C:\Users\Documents\RL Project\Atari_DQN\atari_dqn_3.py", line 211, in atari
    agent.train(terminal, step)

  File "C:\Users\Documents\RL Project\Atari_DQN\atari_dqn_3.py", line 135, in train
    current_q_values = self.model.predict(state[0])

  File "C:\Users\anaconda3\envs\env_rl_test\lib\site-packages\tensorflow_core\python\keras\engine\training.py", line 1013, in predict
    use_multiprocessing=use_multiprocessing)

  File "C:\Users\anaconda3\envs\env_rl_test\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 498, in predict
    workers=workers, use_multiprocessing=use_multiprocessing, **kwargs)

  File "C:\Users\anaconda3\envs\env_rl_test\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 426, in _model_iteration
    use_multiprocessing=use_multiprocessing)

  File "C:\Users\anaconda3\envs\env_rl_test\lib\site-packages\tensorflow_core\python\keras\engine\training_v2.py", line 636, in _process_inputs
    adapter_cls = data_adapter.select_data_adapter(x, y)

  File "C:\Users\anaconda3\envs\env_rl_test\lib\site-packages\tensorflow_core\python\keras\engine\data_adapter.py", line 998, in select_data_adapter
    _type_name(x), _type_name(y)))

ValueError: Failed to find data adapter that can handle input: <class 'numpy.uint8'>, <class 'NoneType'>

抱歉,如果很难理解代码或问题,我是堆栈溢出新手,也是一个非常新手,因此不太确定如何最好地解释它。让我知道,如果我的代码有任何进一步的部分,将有助于把这里。该模型只是一个由两个密集层组成的连续模型,每个层有64个节点(模型尚未最终确定,因此我可能会对其进行更改)以及输入层和输出层。该模型似乎创建得很好,我可以看到它具有model.summary()中正确的输入和输出形状和结构

谢谢


[ 63  63  63  63  63  63 255 255 255 255 255 255 255 255 255 255 255 255
 255 255 255 255 255 255 255 255 255 255 255 255 192 192 192 192 192 192
 255 255 255 255 255 255 255 255 255 255 255 255 255 240   0   0 255   0
   0 240   0   5   0   0   6   0  70 182 134 198  22  38  54  70  88   6
 146   0   8   0   0   0   0   0   0 241   0 242   0 242  25 241   5 242
   0   0 255   0 228   0   0   0   0   0   0   0   0   0   0   0   0   0
   8   0 255 255 255 255 255 255 255   0   0   5   0   0 186 214 117 246
 219 242]