Python TensorFlow“;收到批量和未批量张量的混合,或张量与规格不兼容;

Python TensorFlow“;收到批量和未批量张量的混合,或张量与规格不兼容;,python,tensorflow,Python,Tensorflow,我正在尝试使用TensorFlow在自定义环境中实现DQN。 我已经完成了环境类的实现,并将其集成为DQN环境的一部分。 但是我有一个错误 收到了成批和未成批张量的混合,或张量与规范不兼容。外部阴影数:1。 锯张量_形: 时间步长(步长类型=时态形状([1]),奖励=时态形状([1]),折扣=时态形状([1]),观察=时态形状([1,1,6]) 和规格形状: 时间步长(步长类型=张力形状([]),奖励=张力形状([]),折扣=张力形状([]),观察=张力形状([6])) 我在Tensorflow

我正在尝试使用TensorFlow在自定义环境中实现DQN。
我已经完成了环境类的实现,并将其集成为DQN环境的一部分。
但是我有一个错误

收到了成批和未成批张量的混合,或张量与规范不兼容。外部阴影数:1。 锯张量_形: 时间步长(步长类型=时态形状([1]),奖励=时态形状([1]),折扣=时态形状([1]),观察=时态形状([1,1,6])
和规格形状: 时间步长(步长类型=张力形状([]),奖励=张力形状([]),折扣=张力形状([]),观察=张力形状([6]))

我在Tensorflow的问题中发现了同样的错误,但我找不到确切的解决方案。
在我定义的环境类中,我将操作规范和观察规范指定为

    self._action_spec = array_spec.BoundedArraySpec(
        shape=(), dtype=np.int32, minimum=0, maximum=nq, name='action')
    self._observation_spec = array_spec.BoundedArraySpec(
        shape=(nq,), dtype=np.int32, minimum=0, maximum=1, name='observation')
其中nq是整数值。我不知道为什么张量形状看起来像这样


谢谢。

我遇到了同样的错误。我不知道到底是什么解决了这个问题,但笔记本电脑(ipynb)有一个问题——你必须等待一段时间,等待章节计算,也许过了一段时间再点击,也许在没有笔记本的py文件中尝试你的代码。 我改变的另一件事是我的健身房环境中观察空间的定义,从spaces.Discrete到spaces.Box,例如:

self.observation_space = spaces.Box(low=0, high=2000, shape=(20, 20), dtype=np.int32)