深度学习框架编程:如何完成张量的初等运算(pytorch)

(1) 2024-09-05 15:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
深度学习框架编程:如何完成张量的初等运算(pytorch),希望能够帮助你!!!。

专栏推荐

正文

相加+或者add

import torch

import numpy as np

a=torch.rand(16,3,28,28)

b=torch.rand(1,3,28,28)

print(a+b)

import torch

import numpy as np

a=torch.rand(16,3,28,28)

b=torch.rand(1,3,28,28)

print(torch.add(a,b))

相减sub -

相乘mul * 对位相乘

除div /

矩阵的真实相乘

torch.matmul

深度学习框架编程:如何完成张量的初等运算(pytorch)_https://bianchenghao6.com/blog__第1张

以上是2维矩阵相乘,高维矩阵相乘是这样的:

深度学习框架编程:如何完成张量的初等运算(pytorch)_https://bianchenghao6.com/blog__第2张

这是四维矩阵的相乘,需要注意的是,即使是四维矩阵相乘,其实质也是最后两个维度相乘,也就是(4,784)*(784,8)=(4,8),而前面两个维度不动,注意前两个维度必须要一样

转置

转置

二维的t()

高维的transpose

在pytorch中参数w的维度是(输出维度,输入维度)

也就是说输入x*w的转置=输出维度

深度学习框架编程:如何完成张量的初等运算(pytorch)_https://bianchenghao6.com/blog__第3张

这个表示将全连接层的4*784的输入降维到4*512,那么需要一个参数矩阵

(4,784)*(784,512)=(4,512)

那么参数矩阵就是(784,512),但是有一点需要注意pytorch中参数矩阵w的输入维度和输出维度相反,也就是w我们定义为(512们84),所以需要转置

次方:

import torch

import numpy as np

a= torch.full([3,3],3)

print(a.pow(2))

print(a**2)

print(a**(0.5))

print(a.sqrt())

print(a.rsqrt())

torch.full([3,3],3)表示建立一个3*3的矩阵,元素全是3

a.pow(2)表示对a进行2次方等价于a**2

a**(0.5)表示对a进行开根号等价于a.sqrt()

rsqrt表示对a进行开根号并求倒数

e次方根

import torch

import numpy as np

a=torch.exp(torch.ones(2,2))

取以e为底的对数

import torch

import numpy as np

a=torch.exp(torch.ones(2,2))

print(torch.log(a))

取以2为底的log2,取以10为底的log10

import torch

import numpy as np

a=torch.tensor(3.14)

print(a.floor()) 向下取整

print(a.ceil()) 向上取整

print(a.trunc())获取a的整数部分

print(a.frac())获取a的小数部分

print(a.round())四舍五入

深度学习框架编程:如何完成张量的初等运算(pytorch)_https://bianchenghao6.com/blog__第4张

逐元素操作,此类操作的输入与输出形状一致

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复