RuntimeError: Expected object of scalar type Long but got scalar type Float for argument #2 'target' in call to _thnn_nll_loss_forward
时间: 2024-06-05 19:09:09 浏览: 49
运运行运行时运行时错误运行时错误:运行时错误: 预运行时错误: 预期运行时错误: 预期的运行时错误: 预期的标运行时错误: 预期的标量运行时错误: 预期的标量类型运行时错误: 预期的标量类型是运行时错误: 预期的标量类型是 Long运行时错误: 预期的标量类型是 Long ,运行时错误: 预期的标量类型是 Long ,但运行时错误: 预期的标量类型是 Long ,但是运行时错误: 预期的标量类型是 Long ,但是传运行时错误: 预期的标量类型是 Long ,但是传入运行时错误: 预期的标量类型是 Long ,但是传入的运行时错误: 预期的标量类型是 Long ,但是传入的标运行时错误: 预期的标量类型是 Long ,但是传入的标量运行时错误: 预期的标量类型是 Long ,但是传入的标量类型运行时错误: 预期的标量类型是 Long ,但是传入的标量类型是运行时错误: 预期的标量类型是 Long ,但是传入的标量类型是 Float
相关问题
runtimeerror: expected object of scalar type long but got scalar type float for argument #2 'target' in call to _thnn_nll_loss_forward
这个错误通常表示您正在使用 PyTorch 中的交叉熵损失函数,并且您的目标张量(即正确的标签)中包含浮点数。但是,交叉熵损失函数期望目标张量中的元素是整数。因此,您需要将目标张量转换为整数类型。
您可以使用以下代码将目标张量转换为整数类型:
```
target = target.long()
```
如果您正在使用 DataLoader 加载数据,则可以在创建 DataLoader 时设置 `dtype` 参数以确保目标张量被正确加载为整数类型:
```
data_loader = DataLoader(dataset, batch_size=32, shuffle=True, num_workers=4, pin_memory=True, dtype=torch.long)
```
希望这可以帮助您解决问题!
RuntimeError: Expected object of scalar type Float but got scalar type Double for argument #2 'mat1' in call to _th_addmm
这个错误的原因是你使用了不同类型的张量进行运算。在PyTorch中,有两种类型的张量:FloatTensor和DoubleTensor。FloatTensor使用单精度浮点数,而DoubleTensor使用双精度浮点数。在你的代码中,你可能将一个DoubleTensor类型的张量传递给了一个期望FloatTensor类型的函数,导致了这个错误。你需要将这个张量转换为FloatTensor类型,可以使用`.float()`方法进行转换。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)