Traceback (most recent call last): File "E:/403/myworld/VGAE/trainMy.py", line 59, in <module> loss = criterion(z.view(-1).to(torch.float32), g.ndata['node_features'].view(-1)) File "D:\code\myworld\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl return forward_call(*args, **kwargs) File "D:\code\myworld\lib\site-packages\torch\nn\modules\loss.py", line 619, in forward return F.binary_cross_entropy(input, target, weight=self.weight, reduction=self.reduction) File "D:\code\myworld\lib\site-packages\torch\nn\functional.py", line 3098, in binary_cross_entropy return torch._C._nn.binary_cross_entropy(input, target, weight, reduction_enum) RuntimeError: Found dtype Double but expected Float
时间: 2023-07-21 10:22:17 浏览: 160
linux 下 pip3 报错“ File “/usr/bin/pip3”, line 9, in from pip import mainImportError: canno”处理
5星 · 资源好评率100%
这个错误是因为你的输入数据的数据类型是 `Double`,而 `binary_cross_entropy` 函数的输入数据类型要求是 `Float`。可以将输入数据的数据类型转换为 `Float` 即可,可以使用 `to()` 方法进行转换。例如,将 `z` 和 `g.ndata['node_features']` 的数据类型都转换为 `Float`,代码如下所示:
```python
z = z.to(torch.float32)
node_features = g.ndata['node_features'].to(torch.float32)
loss = criterion(z.view(-1), node_features.view(-1))
```
这样就可以解决这个错误了。需要注意的是,在进行数据类型转换时,要根据具体的数据类型进行转换,避免出现数据类型不匹配的错误。
阅读全文