- 标题:用paddle移植强化学习pytorch代码,报Tensor ValueError
- 版本、环境信息:
Paddle version: 2.2.0
Paddle With CUDA: False
OS: Ubuntu 16.04
Python version: 3.7.4
CUDA version: None
cuDNN version: None.None.None
Nvidia driver version: None
- 复现信息:将强化学习pytorch版本的代码移植成paddle的代码,将网络搭建处调用的Torch API换为了Paddle API。
- 问题描述:将网络搭建处调用的Torch API换为了Paddle API, torch.Tensor( )改为了paddle.to_tensor( ). 然后运行后报错
ValueError: (InvalidArgument) Tensor holds the wrong type, it holds float, but desires to be double.
[Hint: Expected valid == true, but received valid:0 != true:1.] (at /paddle/paddle/fluid/framework/tensor_impl.h:33)
[operator < matmul_v2 > error]
具体报错信息为
项目在AIStudio上的链接:https://aistudio.baidu.com/aistudio/projectdetail/3158284?contributionType=1&shared=1
pytorch代码的论文是:https://ieeexplore.ieee.org/document/8771176
2条答案
按热度按时间klh5stk11#
您好,我们已经收到了您的问题,会安排技术人员尽快解答您的问题,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网API文档、常见问题、历史Issue、AI社区来寻求解答。祝您生活愉快~
Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. Please make sure that you have posted enough message to demo your request. You may also check out the API,FAQ,Github Issue and AI community to get the answer.Have a nice day!
aij0ehis2#
这个问题是因为 matmul 运算时两个操作数(operands)数据类型不一致导致的。
如果你的代码此前曾经能正常运行,因为改了一个地方而出错,那么请指出是修改了哪里。
如果此前还未曾正常跑通,那么线索就是“matmul 运算时两个操作数(operands)数据类型不一致导致的。” 找到报错的那个 matmul 运算,定位一下它的 operand 的 dtype. 可以用 pdb 进行 debug.