关于python的view()以及torch.mm和torch.mul区别

这两天完成了深度学习第一次实验,感觉确实对几种回归以及损失函数的计算什么的有了更加深刻的认识。
有几个困扰我半天的bug原来出在这些地方:

  1. torch.mm和torch.matmul两个虽然都可用于矩阵相乘,但是两者还是有区别的。
    torch.mm(a, b)是矩阵a和b矩阵相乘,比如a的维度是(1, 2),b的维度是(2, 3),返回的就是(1, 3)的矩阵。
    而torch.matmul可以用于高维矩阵(图片)的相乘。例如高维矩阵a和b相乘,比如a的维度是(3, 4),b的维度是(5, 4, 2),返回的就是(5, 3, 2)的矩阵,因为后两维(3, 4)和(4, 2)矩阵相乘的结果是(3, 2)
    当图片矩阵用于mm方法时,会报如下错:matrices expected, got 4D, 2D tensors。

    2.关于view()用法
    view的作用是改变tensor的形状
    view(3,2)表示变为32的张量
    view(-1,x)表示根据原tensor中的数量动态调整为()行x列的tensor
    v1 = torch.range(1, 16)
    v2 = v1.view(-1, 4) 此时v2为4
    4的张量

    此外在实验过程中截了个图展示一下view的作用
    上方
    下方为张量X,上方为X.view((-1,num_inputs)),这里的num_inputs为10.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值