![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch学习笔记
文章平均质量分 52
phily123
这个作者很懒,什么都没留下…
展开
-
pytorch学习笔记——常用函数
torch.softmax()torch.reduce_max()torch.pow()torch.subtrack()torch.gather()torch.log()原创 2022-11-29 11:49:09 · 432 阅读 · 0 评论 -
pytorch学习笔记——torch.repeat(),torch.expend()
torch.repeat与numpy中的np.tile()类似,可以视作将tensor作为一个元素,按照指定倍数进行复制,其中第一个参数表示axis=0的方向进行倍数复制,第二个参数表示axis=1的方向进行倍数复制,1表示1被复制,即不复制,注意输入是几维的,参数就要有几个数,tensor.repeat(2,1,1)= tensor.repeat((2,1,1))......原创 2022-06-13 02:22:27 · 563 阅读 · 1 评论 -
pytorch学习笔记——autograd
一、参考链接https://blog.51cto.com/u_15047489/2619287https://zhuanlan.zhihu.com/p/83172023二、叶子节点与结果节点pytorch用计算图(动态图,tensorflow是静态图)来描述计算,计算图分为节点和边两要素,节点为张量(分为叶子节点和结果节点,可以通过tensor.is_leaf查看,用户自己创建的都是叶子节点),计算(卷积、加乘)为边。叶子节点和结果节点的意义在于反向传播时叶子结点的梯度会保存可以通过tensor.g原创 2022-04-02 18:34:58 · 1603 阅读 · 0 评论 -
pytorch学习笔记——torch.tensor()、torch.Tenosor()与torch.empty()
目录官方文档:一、torch.tensor与torch.Tensor区别二、torch.Tensor与torch.empty三、总结官方文档:https://pytorch.org/docs/stable/generated/torch.empty.html#torch.empty一、torch.tensor与torch.Tensor区别torch.tensor是一个函数,复制参数data的值,并转化为指定的数据类型,默认是原data的类型。aa = torch.tensorbb = torch原创 2022-04-02 16:28:22 · 6937 阅读 · 0 评论 -
pytorch学习笔记——算术运算
pytorch中的乘法一共有四种,有 * 乘,torch.mul,torch.mm,torch.matmul。其中*乘和torch.mul都是element-wise的乘法,也就对应元素相乘。而后两种是数学上的矩阵乘法。参考链接:https://blog.csdn.net/real_ilin/article/details/112412137...原创 2022-03-27 21:50:21 · 1490 阅读 · 0 评论 -
pytorch学习笔记——loss.backward()、optimizer.step()、scheduler.step()
loss.backward()进行反向传播求出梯度optimizer进行参数管理与更新,所以optimizer放在backward后面用求出的梯度进行参数更行,记住step之前要进行optimizer.zero_grad(),否则用的梯度包含上一个batch的,相当于batch_size为之前的两倍,所以optimizer.step()是用在batch里的scheduler.step()是用来更新学习率的,所以用在epoch里参考资料: Pytorch optimizer.step() 和loss.b原创 2022-03-03 11:50:04 · 2390 阅读 · 0 评论 -
pytorch学习笔记——requires_grad、detach、torch.no_grad
requires_grad表示这个tensor是否要求计算梯度,自己新建的tensor(即叶子节点)默认为False,不用计算梯度,如果某个输入需要计算梯度,则其输出也默认需要计算梯度,就算想把这个输出强行改为False也不行会提示错误torch.no_grad()是一个上下文管理器,被该语句 wrap 起来的部分将不会track 梯度。with torch.no_grad()或者@torch.no_grad()中的数据不需要计算梯度,也不会进行反向传播。这种情况是允许输入要求梯度,改变输出的req原创 2022-02-26 20:25:01 · 2850 阅读 · 0 评论 -
pytorch学习笔记
pytorch流程:加载模型(model)输入数据(数据处理后的数据(input)模型输出(pred=model(input)计算损失函数(loss)反向传播(loss.backward())参数更新(optimizer.step())数据处理流程:加载数据(numpy)修改输入图片尺寸(resize)转化成tensor,并转到device上(im = torch.from_numpy(im).to(device))精度转化(im = im.half() if half else im原创 2022-02-21 15:05:50 · 1753 阅读 · 0 评论 -
pytorch学习笔记———常见问题
错误1:ValueError: At least one stride in the given numpy array is negative, and tensors with negative strides are not currently supported. (You can probably work around this by making a copy of your array with array.copy().)参考链接:https://blog.csdn.net/weix原创 2022-02-21 19:13:00 · 1344 阅读 · 0 评论 -
pytorch学习笔记——数据类型的转化
参考链接:[https://mp.weixin.qq.com/s/yz8l54VusPWmF6dWkYL1VA]https://zhuanlan.zhihu.com/p/87441580np.ndarray与PIL.Image的转换image = PIL.Image.fromarray(ndarray.astype(uint8))ndarray = np.asarray(PIL.Image.open(path))PIL.Image转Opencvimage = cv2.cvtColor(numpy原创 2021-12-17 16:18:16 · 4321 阅读 · 0 评论 -
pytorch学习笔记——Dataset与Dataloader以及迭代器与迭代对象
流程:import numpy as npimport pandas as pdimport torchfrom torch.utils.data import Datasetfrom torch.utils.data import DataLoader# 构造datasettrain = Mydataset(xy_train)test = Mydataset(xy_test)# 训练时,一般打乱数据;但测试时不打乱;batch_size自己设置# 构造dataloadertrain_原创 2021-11-21 21:21:03 · 1993 阅读 · 0 评论 -
pytorch学习笔记——模型的保存与加载以及获取模型参数
module.state_dict()、module.named_parameters()、module.parameters()pytorch中获取模型参数:state_dict和parameters两个方法的差异比较一、module.state_dict()返回的是一个顺序字典,key为层名,值为层的权值参数或者偏置参数。作用:1、查看每一层与它的对应关系;2、模型保存时使用。二、module.named_parameters()返回的是一个生成器元素是元组、元组第一个值是层名,第二个值是权原创 2021-11-14 23:12:51 · 10924 阅读 · 2 评论 -
pytorch学习笔记——设置需要学习的参数、优化器设置以及优化器学习率调度
#首先定义网络模型net = module()# 定义一个optimizer类,这个类可以用来更新网络参数optimizer = torch.optim.SGD(net.parameters(),lr=0.01)# 定义学习率调度器CosineLR = torch.optim.lr_scheduler.CosineAnnealingLR(optimizer_CosineLR, T_max=150, eta_min=0)#再求出输出计算出损失函数loss.backward()CosineLR.原创 2021-11-12 21:24:34 · 2543 阅读 · 1 评论 -
pytorch学习笔记——model.train()和model.eval()
PyTorch(七)——模型的训练和测试、保存和加载pytorch模型训练和评估时要加上model.trian()和model.eval()是因为BN和dropout的影响原创 2021-11-07 18:47:57 · 166 阅读 · 0 评论 -
pytorch学习笔记——张量维度操作
一、torch.cat()添加链接描述按照指定维度拼接张量c=torch.cat((A,B),0)#按维度0拼接c=torch.cat((A,B),1)#按维度1拼接二、torch.view()添加链接描述x = torch.randn(4, 4)print(x.size())y = x.view(16)print(y.size())z = x.view(-1, 8) # -1表示该维度取决于其它维度大小,即(4*4)/ 8print(z.size())m = x.view(2原创 2021-09-23 22:59:33 · 3951 阅读 · 0 评论 -
pytorch学习笔记
一、tensor转化到gpu上运算:默认情况下不允许跨 GPU 操作,除了 copy_()和 其他具有类似复制功能的方法,例如to()和cuda()。除非您启用点对点内存访问,否则任何在跨不同设备的张量上启动操作的尝试都会引发错误。cuda = torch.device('cuda') # Default CUDA devicecuda0 = torch.device('cuda:0')cuda2 = torch.device('cuda:2') # GPU 2 (these are 0-原创 2021-09-13 12:22:37 · 80 阅读 · 0 评论 -
pytorch学习笔记——pytorch入门
pytorch基础入门教程/一小时学会pytorchpytorch官方教程原创 2021-09-11 21:08:04 · 84 阅读 · 0 评论 -
pytorch学习笔记——requires_grad
根据PyTorch的自动求导机制,如果一个tensor设置require_grad为True的情况下,才会对这个tensor以及由这个tensor计算出来的其他tensor求导,并将导数值存在tensor的grad属性中,便于优化器来更新参数。所以一般情况下,只有对训练过程的tensor设置require_grad为True,便于求导和更新参数。而验证过程只是检查当前模型的泛化能力,只需要求出loss,所以不需要根据val set的loss对参数进行更新,因此require_grad为False。具体的一些原创 2021-09-11 21:07:04 · 9040 阅读 · 0 评论 -
pytorch学习笔记——torch.Tensor()与·torch.tensor()
torch.Tensor()是一个类,默认是torch.FloatTensor()的简称,创建的为float32位的数据类型;torch.tensor()是一个函数,是对张量数据的拷贝,根据传入data的类型来创建Tensor;a=torch.Tensor([1,2])type(a)#<class 'torch.Tensor'>a.type()#'torch.FloatTensor'a = torch.tensor([1, 2])type(a)#<class 'torch.T原创 2021-09-11 13:51:47 · 2939 阅读 · 0 评论 -
pytorch学习笔记——nn.Linear()
添加链接描述全连接层,相当于tf中的Dense(),用法是nn.Linear(in_features=,out_features=),放在第一层时需要指定输入的维度,即in_features,out_features是这层网络的神经元个数。传入Linear层的实际是二维([batch_size,size]),但实际搭建网络层时不用指明batch_size,输入时的维度一定要包含batch_size。...原创 2021-09-02 11:15:48 · 1256 阅读 · 0 评论