修改后报错D:\mycode2\PPO-PyTorch\PPO.py:52: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray. state = np.array(state) Traceback (most recent call last): File "D:\mycode2\PPO-PyTorch\PPO.py", line 210, in <module> main() File "D:\mycode2\PPO-PyTorch\PPO.py", line 173, in main action = ppo.policy_old.act(state, memory) File "D:\mycode2\PPO-PyTorch\PPO.py", line 53, in act state = torch.from_numpy(state).float().to(device) TypeError: can't convert np.ndarray of type numpy.object_. The only supported types are: float64, float32, float16, complex64, complex128, int64, int32, int16, int8, uint8, and bool.
时间: 2024-04-12 15:32:06 浏览: 131
FCN-pytorch-master.zip_fcn pytorch 9:9_pytorch_pytorch fcn代码_pyt
非常抱歉,我之前提供的解决方案似乎没有解决问题。
根据报错信息,你的 `state` 数组中包含不规则的嵌套序列,导致无法将其转换为 NumPy 数组。为了解决这个问题,你可以尝试使用其他方法来处理 `state` 数组。
如果 `state` 是一个嵌套列表或元组,你可以使用列表推导式或循环来将其转换为规则的二维数组。下面是一个示例代码:
```python
state = np.array([np.array(sublist) for sublist in state])
state = torch.from_numpy(state).float().to(device)
```
这样做将会遍历 `state` 中的每个子列表或子元组,并将其转换为 NumPy 数组。然后,将这些数组组合成一个规则的二维数组,并使用 `torch.from_numpy()` 函数将其转换为 PyTorch 张量。
请尝试按照上述方式修改代码,并重新运行程序。如果问题仍然存在,请提供更多关于 `state` 数组的信息,以便我能够更好地帮助你解决问题。谢谢!
阅读全文