![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch
文章平均质量分 50
沉睡中的主角
忆昔穷苍茫
清心浴乾坤
展开
-
完整的模型训练套路(pytorch)
(联邦学习笔记,资料来源于b站小土堆)训练模板1、准备数据集2、获取数据集长度,可以用来辅助计算精确度3、加载数据集(DataLoader)4、搭建网络模型(一般单独一个python文件)5、创建网络模型(实例化)6、定义损失函数、优化器7、设置训练网络的一些参数(如训练次数、轮数等等)8、模型训练具体代码实现如下(简单示例):1、准备数据集train_data = torchvision.datasets.CIFAR10("../data",train=原创 2021-08-06 20:18:54 · 5929 阅读 · 4 评论 -
模型的保存与加载(pytorch)
(联邦学习笔记)对于我们自定义的或者对于现存的模型进行修改后,我们可能要在别的地方进行调用,这时候需要先将它进行保存以便后续调用。模型保存对于模型的保存有两种方式,一种是同时保存模型结构和模型参数;另一种是仅保存模型参数(官方推荐)保存方式一(保存模型结构和模型参数):torch.save(vgg16,"vgg16_methond1.pth")其中vgg16是模型,vgg16_methond1.pth是保存的名称保存方式二(仅保存模型参数):torch.save(vgg1原创 2021-08-06 11:04:52 · 543 阅读 · 0 评论 -
现有网络模型的使用和修改
(联邦学习笔记)在pytorch中,torchvison.module里有很多现有的模型可以直接使用,包括Alexnet VGG ResNet SqueezeNet DenseNet Inception v3 GoogLeNet ShuffleNet v2 MobileNet v2 MobileNet v3 ResNext Wide ResNet MNASNet Quantized Models官方文档链接:https://pytorch.org/vision/stab.原创 2021-08-05 20:59:58 · 486 阅读 · 0 评论 -
优化器TORCH.OPTIM
Optim是一个实现各种优化算法的包。大多数常用的方法已经得到支持,接口也足够通用,因此将来也可以轻松集成更复杂的方法。常用套路:1. 计算loss result_loss =nn.CrossEntropyLoss(output,targets)2. 清空梯度optim.zero_grad()3. 反传传播result_loss.backward()4. 更新参数optim.step()优化器使用的简单案例:import torchimport torchvis...原创 2021-08-05 20:11:01 · 430 阅读 · 0 评论 -
损失函数和反向传播
L1LOSS原创 2021-08-05 19:44:59 · 1193 阅读 · 0 评论 -
神经网络搭建+sequential
搭建神经网络+sequential(联邦学习笔记)sequential:顺序容器。模块将按照它们在构造函数中传递的顺序添加到它当中。或者,可以传入模块的OrderedDict。Sequential的forward()方法接受任何输入并将其转发到它包含的第一个模块。然后,它将每个后续模块的输出顺序链接为输入,最后返回最后一个模块的输出。(能简化代码)下面以CIFR10的卷积神经网络搭建模型。1、有三个卷积层,卷积核均为5x52、最大池化层有三个,内核为2x23、数据经过 卷积层原创 2021-08-05 16:50:04 · 924 阅读 · 0 评论 -
神经网络-非线性激活ReLU
ReLU 函数线性整流函数(Rectified Linear Unit,ReLU),又称修正线性单元,是一种人工神经网络中常用的激活函数(activation function),通常指代以斜坡函数及其变种为代表的非线性函数。激活函数有两个参数(input,inplace)import torchimport torchvisionfrom torch import nnfrom torch.nn import ReLU, Sigmoidfrom torch.utils.d..原创 2021-08-04 20:49:17 · 685 阅读 · 0 评论 -
神经网络-卷积层
在上一篇,输入图像经过一个卷积核,得到一个输出。这是我们设置卷积层参数in_channel=1,out_channel=1时(默认)的结果。当我们设置in_channel=1,out_channel=2时,卷积核就回有两个,卷积后的输出也有两个先简单编写一个神经网络,如下:import torchimport torchvisionfrom torch import nnfrom torch.nn import Conv2dfrom torch.utils.data import .原创 2021-08-04 18:56:09 · 269 阅读 · 0 评论 -
Torch.nn
1、简单使用nn模型简单使用nn模型,自定义一个模型,简单处理时输入数据+1作为输出import torchfrom torch import nnclass module(nn.Module): def __init__(self): super().__init__() def forward(self,input): output = input + 1 return outputmod = module()x原创 2021-08-04 18:02:22 · 171 阅读 · 0 评论 -
Dataloader类
Dataset让我们可以知道数据在什么位置,及数据的的索引对应的数据。Dataloader相当于加载器,把数据加载到神经网络中import torchvision#测试数据集,train设置为false,因为数据集原本是PIL.image类型,但是我们要用的是tesor类型,所以转换一下from torch.utils.data import DataLoadertest_data = torchvision.datasets.CIFAR10("./data",train=False,t原创 2021-08-04 16:02:57 · 586 阅读 · 1 评论 -
pytorch加载数据(torchvision)
联邦学习/机器学习笔记(四)Logistic回归的代码实现首先打开存放数据的txt文件,可以看到存放数据方式:每一行中第一个数据代表x坐标,第二个数代表y坐标,最后一个代表数据类别我们先读取数据,可以通过matplotlib能简单的将数据画出来import matplotlib.pyplot as plt#读取数据with open('data.txt', 'r') as f: data_list = f.readlines() data_list = [i.sp原创 2021-08-04 15:08:28 · 293 阅读 · 0 评论 -
如何使用Tensorboard进行绘图
目标:1、使用Tensorboard2、图像变换,使用transform首先先了解SummaryWriter,它能直接将条目写入日志目录中的事件文件,供TensorBoard使用Summarywriter主要使用到两种方法:add_image()和add_scalar()Summarywriter.add_scalar()在Summarywriter.add_scalar()的参数中,global_step对应x轴,scalar_value对应y轴 writer.add_scalar原创 2021-08-04 12:09:29 · 4309 阅读 · 0 评论 -
联邦学习(pytorch)的损失值为负值解决办法
在用pytorch运行联邦学习程序时,损失值出现负值,如下:出现这种情况,我们可以用以下解决方法:方法一:在定义的模型里把 self.softmax = nn.Softmax(dim=1) 改成self.softmax = nn.LogSoftmax(dim=1)在代码里如下:修改后的执行结果如下:方法二:因为交叉熵有个负对数,所以当网络输出的概率是0-1时,损失值为正数。而当网络输出大于1的数,就有可能变成负数。因此需要添加一行out1 = F.soft.原创 2021-08-01 10:53:16 · 2624 阅读 · 0 评论