1.1.pytorch基础
掌握pytorch的常用基础
YANQ662
这个作者很懒,什么都没留下…
展开
-
10.1.nn.model类的快速搭建法
print(".............2.named_parameters()可以返回学习参数的迭代器,分别为参数名与参数值.................")print("................1.实例化一个网络,并赋值全连接的维数,最终输出二维代表二分类..................")y=x+self.b.expand_as(x)#expand_as(x)用来保证矩阵形状一致。#2.named_parameters()可以返回学习参数的迭代器,分别为参数名与参数值。原创 2023-08-21 13:36:12 · 122 阅读 · 0 评论 -
10.nn.model类
print(".............2.named_parameters()可以返回学习参数的迭代器,分别为参数名与参数值.................")print("................1.实例化一个网络,并赋值全连接的维数,最终输出二维代表二分类..................")y=x+self.b.expand_as(x)#expand_as(x)用来保证矩阵形状一致。#2.named_parameters()可以返回学习参数的迭代器,分别为参数名与参数值。原创 2023-08-19 23:21:03 · 52 阅读 · 0 评论 -
9. 计算图
print("2. x不需要求导,w与b需要求导>>>>>>>>>>>>>>",x.requires_grad,w.requires_grad,b.requires_grad)print("5. #对w求导等于x,对b求导等于1:>>>>>>>>>>>>>",x,w1,b1)#对w求导等于x,对b求导等于1------>w1=x,b1=1。#1.看x,w,b是否是叶节点,三个都是自己生成的,故都是叶节点。#2.x不需要求导,w与b需要求导,不断修改参数。#3.进行前向计算,由计算生成的变量都不是叶节点。原创 2023-08-19 21:50:56 · 20 阅读 · 0 评论 -
8. tensor的自动求导
print("4.grad_fn操作",a.grad_fn,b.grad_fn,c.grad_fn)#c是add求和操作,a和b是输入值,没有经过任何操作,故为None。print("1.a可以求导,b不能求导",a.requires_grad,b.requires_grad)print("5.detach()获取数据",d.requires_grad)print("3.c可以求导", c.requires_grad)print("2.b可以求导",b.requires_grad)原创 2023-08-19 21:49:44 · 44 阅读 · 0 评论 -
7.tensor的内存共享
print(a)#由于内存共享,在修改b和c的元素值时,其实对初始值a也做了修改,在这里a[0,0]=0,a[2,2]=4。c=a.resize_(4)#a自身也变成了c的(1,4)维度。print("add_()等原地操作符:", a)print("add_()等原地操作符:",a)#1.tensor初始化另一个tensor。# 1.tensor初始化另一个tensor。b=a.add_(a)#a自身也变成了b值。#2.add_()等原地操作符。#2.add_()等原地操作符。原创 2023-08-19 21:45:13 · 77 阅读 · 0 评论 -
6.tensor的自动广播机制与向量化
(2) 若两个矩阵对应的维度不等时,不等的其中一个维度一定等于1。# 1.广播机制是指在不同形状的tensor进行计算时,可自动扩展到较大的相同形状进行计算。#(3)一个维度存在,另一个维度不存在时,也可以用广播机制。#在计算时尽量用向量进行计算操作,用for 循环很消耗时间。#广播机制的要求:(1)两个矩阵的维度都不能为0。原创 2023-08-19 21:44:17 · 40 阅读 · 0 评论 -
5.tensor的排序与取极值
b=a.sort(0,True)#0表示按行排序,即对每一列的元素进行排序,True表示降序,False表示升序。c=a.max(0)##0表示按行选取最大值,即对每一列的元素取最大值。d=a.min(1)#1表示按列选取最小值,即对每一行的元素取最小值。#2.最值max()函数和min()函数。原创 2023-08-19 21:43:07 · 177 阅读 · 0 评论 -
4.tensor的索引与变形
4.torch.where(condition,x,y),满足condition的位置输出x,否则输出y。#2.选择a中大于1的元素,返回和a相同大小的tensor,符合条件的输出1,否则输出0。b=a.transpose(0,1)#将第0维与第1维的元素进行转置。c=a.permute(1,0)#按照1,0的维度顺序重新排序。print("3.选择符合条件的元素并返回",a[s])print("1.根据下标索引",a[:,1])print("2.选择a中大于1的元素",s)#6.选择非0元素的坐标。原创 2023-08-19 21:40:54 · 102 阅读 · 0 评论 -
3.tensor的组块与分块
c=torch.cat([a,b],0)#0表示对a,b的行进行组合,此时行数相加,列数不变。d=torch.cat([a,b],1)#0表示对a,b的列进行组合,此时列数相加,行数不变。c2=torch.split(c,[2,1],1)#list元素代表每一个块占的维度。e=torch.stack([a,b],0)#a和b本身叠加(2,2,3)f=torch.stack([a,b],1)#按照每一行叠加(2,2,3)d2=torch.chunk(a,2,1)#沿着第1维分块,一共分两块。原创 2023-08-19 21:39:46 · 34 阅读 · 0 评论 -
2.tensor的创建与维度查看
print("2.nelement()函数查看tensor元素的个数:", a.nelement())print("1.numel()函数查看tensor元素的个数:",a.numel())print("10.randperm()函数的创建:",m)print("linspace()函数的创建:",h)print("6.randn()函数的创建:",f)print("9.tensor()方法创建:",k)print("arange()函数的创建:",g)print("5.eye()函数的创建:",e)原创 2023-08-19 21:38:37 · 352 阅读 · 0 评论 -
1.tensor_数据类型
4.使用type_as()函数 最重要**************************#1.创建tensor,默认为torch.FloatTensor。#2.使用double()等直接转换数据类型。#3.使用type()函数转换数据类型。原创 2023-08-19 21:37:19 · 34 阅读 · 0 评论