Pytorch mat1 and mat2 must have the same dtype

阅读量:

#常青

使用 pd.read_parquet 从本地文件读取数据,输入给 torch.tensor 并使用 DataLoaderTensorDataset 创建训练集

系统信息

WSL2 Ubuntu 22.04.2 LTS

运行内容

training_data = pd.read_parquet(
	"v4.1/train.parquet", columns=read_columns, engine="fastparquet"
)

training_X = torch.tensor(
	training_data.filter(like="feature_", axis="columns").to_numpy(), dtype=torch.float32)
training_Y = torch.tensor(training_data[TARGET_COL].to_numpy(), type=torch.float32)

training_loader = DataLoader(
	TensorDataset(training_X, training_Y), batch_size=64, shuffle=True
)

# 模型中的一部分
fc1 = nn.Linear(input_dim, hidden_dim)
fc1(x) # 出错位置

报错信息

[!error] RuntimeError: mat1 and mat2 must have the same dtype

尝试解决

一直看错当成 shape 不相同……然而是数据类型不同

解决方案

在转换成 torch.tensor 时指定类型为 dtype=torch.float32

参考资料

https://discuss.pytorch.org/t/runtimeerror-mat1-and-mat2-must-have-the-same-dtype/166759

反向链接

到头儿啦~

局部关系图