当前位置: 首页>编程语言>正文

pytorch 推荐系统github pytorch入门项目

搭建基础网络结构

调参方法及技巧

动态图:编好程序即可执行

静态图:先搭建好计算图,后运行,允许编译器进行优化;代码编程复杂,调试不直观

pytorch基于动态图,编程简单,但是部署起来比较麻烦

张量

张量就是多个矩阵的复合拼接,多个矩阵的组合,样本就是Tensor

类型、创建、属性、运算、操作、numpy的相互转换

九种数据类型:float(int)64[double long]\32[float int]\16[half short]、uint8、int8、bool

创建方式:
pytorch 推荐系统github pytorch入门项目,pytorch 推荐系统github pytorch入门项目_动态图,第1张

特殊常用Tensor:zeros(ones,eyes)_like(),rand(*size),normal()进行参数的初始化,torch.Tensor(2,3).uniform(-1,1) 先定义好尺寸,再定义范围;生成序列torch.arange(0,11,1);拿到等间隔n个序列torch.linspace(0,10,4)

属性:torch.dtype(device\layout–>内存布局的对象)三种属性

稠密张量定义:

torch.tensor([1,2,3],dtype=torch.float32,device=torch.device('cpu'))

稀疏张量的定义:

表示数据中非零元素的个数,使模型变得简单,传入的是非零元素的坐标值,减少内存,采用torch.sparse_coo_tensor来定义,coo类型表示了非零元素的坐标形式

indices=torch.tensor([[0,1,1],[2,0,2]])
value=torch.tensor([3,4,5],dtype=torch.float32)
x=torch.sparse_coo_tensor(i,v,[2,3])

Tensor的算数运算

c=a+b
c=torch.add(a,b)
a.add(b)
a.add_(b)#会对a的值进行修改

#哈达玛积:对应元素相乘
c=a*b
c=torch.mul(a,b)
a.mul(b)
a.mul_(b)

c=a/b
c=torch.div(a,b)
a.div(b)
a.div_(b)

#二维矩阵运算torch.mm() torch.matmul()、@
a=torch.ones(2,1)
b=torch.ones(1,2)
print(torch.mm(a,b))
torch.matmul(a,b)
a@b
a.matmul(b)
a.mm(b)

#高维矩阵运算
a.matmul(b)
torch.matmul(a,b)

#幂运算
torch.pow(a,2)
a**2
a.pow_(2)
torch.exp(a)
a.exp_()
#开方运算
a.sqrt()
a.sqrt_()
#对数运算
torch.log2(a)
torch.log(a)
torch.log_(a)

in-place操作

就地操作,即不允许使用临时变量,也称原位操作

x=x+y
add_、sub_、mul_等等

广播机制:张量参数可以自动扩展为相同大小

广播机制需要满足两个条件:

​ 1)每个张量至少有一个维度

​ 2)满足右对齐

​ 3)torch.rand(2,1,1)+torch.rand(3)

()这个详细

.floor() 向下取整
.ceil()  向上取整
.round()四舍五入
.trunc() 保留整数部分
.frac()  保留小数部分
%    取余

Tensor的比较运算

torch.eq(input,other,out=None)#按成员进行等式操作,相同返回True
.equal(tensor1,tensor2)#如果两个有相同的size和elements,则为true
.ge()
.gt()
.le()
.lt()
.ne()
.sort(input,dim=None,descending=False,out=None)#对目标input进行排序
.topk(input,k,dim=None,largest=True,sorted=True,out=None)#沿着指定维度返回最大k个数值及其索引值,loss的时候会用到,维度就是shape的代表值,dim=0代表列排序,dim=1是行排序
.kthvalue(input,k,dim=None,out=None)#沿着指定维度返回第k个最小值及其索引值
.isfinite(tensor)/.isinf()/.isnan()#分别判断是否为finite、inf、nan,返回的是一个mask张量

Tensor的三角函数

pytorch 推荐系统github pytorch入门项目,pytorch 推荐系统github pytorch入门项目_深度学习_02,第2张

Tensor中的其他数学函数

.abs()\.sign()\.erf()\.lerp()\.erfinv()\.addcdiv\.sigmoid()\.addcmul()\.neg()\.cumprod()\.reciprocal\.cumsum()\.rsqrt()

Tensor中统计学相关函数

.mean()\.sum()\.prod-->计算所有元素的积\torch.max()\torch.min\torch.argmax()-->返回排序中最大值的索引\torch.argmin()
#可以添加维度
torch.std(a,dim=)#返回标准差
torch.val()#返回方差
torch.median()#返回中间值
torch.mode()#返回众数值
torch.histc()#计算input的直方图
torch.bincount()#返回每个值的频数,只针对一维的tensor

https://www.xamrdz.com/lan/58p1959820.html

相关文章: