python - RuntimeError: 期望一个 Torch.FloatTensor 类型的张量,但为序列元素找到了一个类型 torch.IntTensor
问题描述
我想用 python 生成一些随机数,然后用 pytorch 将其转换为张量。这是我生成随机数并将其转换为张量的代码。
import numpy as np
import torch
P = np.random.uniform(0.5, 1, size=[20, 1])
k = np.random.randint(1, 20, size=[20, 1])
d_k = np.random.uniform(0, np.sqrt(80000), size=[20, 1])
P = torch.from_numpy(P).float()
k = torch.from_numpy(k).int()
d_k = torch.from_numpy(d_k).float()
torch.cat((P, k, d_k), dim=-1)
之后,我收到了一些错误,显示:
RuntimeError: Expected a Tensor of type torch.FloatTensor but found a type torch.IntTensor for sequence element 1 in sequence argument at position #1 'tensors'
解决方案
错误是因为k
张量属于 dtypetorch.int32
而其他张量P
属于d_k
dtype torch.float32
。但是该cat
操作要求所有输入张量的类型相同。从文档
torch.cat(tensors, dim=0, out=None) → 张量
张量(张量序列)——任何相同类型的张量的python序列。
解决方案之一是转换k
为float
dtype 如下:
k = torch.from_numpy(k).float()
推荐阅读
- python - 如何从不同的电脑安装 Python 项目 requirements.txt?
- python - django中的值错误指的是什么,我被卡住了
- javascript - 如何在 Shopify 私有 APP 中发出 API 请求
- javascript - 从 Firebase 存储中获取 URL 照片时,等待新的 Promise 不起作用
- python - 存储在 mongoDB 中的 Django 'Dynamic' 对象
- react-native - 关于 react-native 中的 Svg 行,我可以将 x1、y1 设置为变量吗?
- uber-api - Uber Eats api 与餐厅经理应用程序的集成
- python - 如何使用 NLP 从评论中提取颜色?
- git - 将新代码库推送到现有仓库的分支
- c# - 只有赋值调用递增递减等待和新对象表达式可以作为语句 Unity Pong Game