Pytorch mat1 and mat2 must have the same dtype
阅读量:
#常青
使用 pd.read_parquet
从本地文件读取数据,输入给 torch.tensor
并使用 DataLoader
和 TensorDataset
创建训练集
系统信息
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
反向链接
到头儿啦~