pytorch有关张量类型和张量相乘时的报错问题

最近在学习pytorch,在遇到张量点乘或者叉乘的时候总是会遇到各种报错,烦不胜烦
于是就想总结一下有关张量点乘或者叉乘时报错的问题,记录笔记

首先,张量有很多种类型:

t1=torch.tensor([[1,2,3],[4,5,6]],dtype=torch.float64)
t2=torch.tensor([[1,2],[3,4],[5,6]])
t3=torch.tensor([[4,5,6],[7,8,9]],dtype=torch.float32)
print(t1.type())
print(t2.type())
print(t3.type())

举例以下三种类型:

torch.DoubleTensor
torch.LongTensor
torch.FloatTensor

总的来说,在矩阵点乘或者叉乘时,不同类型的张量不可以相乘。
比如定义一个叉乘的函数:

def mat(t1,t2):
    return torch.mm(t1,t2)

将t1和t2传入:

mat(t1,t2)

那么就会报RuntimeError: Expected object of scalar type Double but got scalar type Long for argument #2 'mat2'这样的错误;

或者再将t1和t3点乘:

t1*t3

那么就会报RuntimeError: expected device cpu and dtype Double but got device cpu and dtype Float的错误。
总之就是一句话,不同类型不能相乘!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

happylife_mini

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值