
基于pytorch的深度学习
基于pytorch的深度学习
tiny_PIkid
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
模型的验证套路
对于训练好的神经网络模型,验证它的正确率这里还是用CIFAR10数据集训练出来的模型进行验证放置图片我是在与代码文件上级文件同级的文件中方便使用images = "../image/dog.jpg"完整代码:import torchimport torchvisionfrom PIL import Imagefrom torch import nnfrom torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Li.原创 2022-04-04 17:23:58 · 1965 阅读 · 0 评论 -
利用GPU训练
利用GPU来训练一般来说训练的速度比CPU要快的多,并且添加GPU也并不复杂,添加cuda()即可。在下面模块添加GPU操作语句:1.神经网络模型#搭建神经网络class Gu(nn.Module): def __init__(self): super(Gu , self).__init__() self.model1 = Sequential( Conv2d(3, 32, 5, 1, 2), ...原创 2022-04-04 16:15:25 · 4270 阅读 · 0 评论 -
直观的模型训练及测试效果
在之前完整的训练模型中只是做到了成功训练,也有损失函数但是在大量数据集、多次训练的情况下,数据较多,并不直观,而且没有做测试。在这里添加了测试模块,并且为了进一步直观的测试效果,添加了正确率 #测试 total_test_loss = 0 total_accuracy = 0 with torch.no_grad(): for data in test_dataloader: imgs, targets = data原创 2022-04-03 23:54:55 · 1911 阅读 · 0 评论 -
完整的训练模型范例
一个简单的完整训练模型,这里训练和测试的数据集采用CIFAR10训练的神经网络参照CIFAR10 model结构搭建损失函数采用交叉熵损失函数(nn.CrossEntropyLoss())优化器采用随机梯度下降优化器(SGD)import torchimport torchvision.datasetsfrom torch import nnfrom torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear.原创 2022-04-02 20:44:17 · 1034 阅读 · 0 评论 -
神经网络模型的保存和读取
保存神经网络的两种方法:(还是以我之前自建的神经网络模型Gu为例,保存这个神经网络)gu = Gu()1. torch.save(gu,"gu_module.pth")2. torch.save(gu.state_dict(),"gu_module.pth")import torchfrom torch import nnfrom torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linearclass Gu(nn原创 2022-04-01 17:08:12 · 2542 阅读 · 0 评论 -
优化器(以SGD为例)
pytorch中对于优化器的介绍:torch.optim — PyTorch 1.11.0 documentation上一篇文章介绍了使用损失函数直观的看出实际值与目标值之间的差距,本节利用优化器使训练时实际输出值在每一轮训练中利用优化器不断接近目标值,使损失值不断减少这里使用随机梯度下降优化器(SGD)import torch.optimimport torchvisionfrom torch import nnfrom torch.nn import Conv2d,原创 2022-04-01 16:35:29 · 1793 阅读 · 0 评论 -
损失函数与反向传播
pytorch官网中对损失函数的介绍torch.nn — PyTorch 1.11.0 documentation利用损失函数衡量误差我们在利用神经网络训练时实际输出的值与我们的目标值可能存在较大的差距,利用损失函数可以直观看出我们目标值与实际输出之间的差距,以便指导我们的输出去接近我们的目标值。以L1Loss 为例L1Loss — PyTorch 1.11.0 documentationimport torchfrom torch.nn import L1Lossinput原创 2022-04-01 16:12:43 · 807 阅读 · 0 评论 -
卷积层的初步了解
pytorch中神经网络模块有卷积层的介绍:torch.nn — PyTorch 1.10 documentation下面的例子是对二维卷积中stride和padding的了解和认识import torchimport torch.nn.functional as Finput=torch.tensor([[1,2,0,3,1], [0,1,2,3,1], [1,2,1,0,0], .原创 2022-03-05 17:24:31 · 384 阅读 · 0 评论 -
神经网络的基本骨架nn.Module的使用
pytorch官网中有许多神经网络的模板提供给我们初学者:torch.nn — PyTorch 1.10 documentationModule是所有神经网络模型的基本的类这里的init做的是初始化处理,这里没有设置卷积,可以根据需要自行设置super()函数父类初始化是必须的这里forward函数是神经网络的核心,它会对输入进来的数据进行处理,可以在此函数下设置自己想要处理的操作,这里的操作只是对输入进来的数据进行简单的加一操作import torchimport torch.原创 2022-02-21 16:02:30 · 877 阅读 · 0 评论 -
torchvision中数据集的使用
在pytorch官网(torchvision — Torchvision 0.11.0 documentation (pytorch.org))中可以很清楚的看到提供的数据集以及详细的说明,现成的数据集使用起来也很方便。以CIFAR为例import torchvisiontrain_set = torchvision.datasets.CIFAR10(root="./dataset",train=True,download=True)test_set = torchvision.datase原创 2022-02-21 12:51:23 · 945 阅读 · 0 评论 -
Tensor与Autograd
torch.autograd是为了方便用户使用,专门开发的一套自动求导引擎,它能够根据输入和前向传播过程自动构建计算图,并执行反向传播。Autograd包为张量上所有的操作提供了自动求导功能,为实现自动求导,首先要创建叶子节点,并对初始化参数requires_grad设为True。后面通过运算得到的tensor对象叫非叶子节点,但会自动被赋予grad_fn属性。该属性表示梯度函数。将最后的结果执行backward()函数,可进行反向传播,求出各个叶子节点的梯度,保存在grad属性里。反...转载 2022-01-28 22:45:14 · 159 阅读 · 0 评论 -
创建tensor(对标numpy)
TORCH.TENSORAtorch.Tensoris a multi-dimensional matrix containing elements of a single data type.Tensor可以理解为多维数组,不同Tensor可以有不同的数据类型和形状。在TensorFlow中数据的核心单元就是Tensor,在PyTorch中Tensor负责存储基本数据,并且PyTorch中定义的Tensor数据类型可以实现在GUPs上进行运算,只需要对变量做一些简单的类型转换就可以实现。创..原创 2022-01-26 23:54:23 · 1351 阅读 · 0 评论 -
numpy广播机制
无原创 2022-01-25 23:46:44 · 2008 阅读 · 0 评论 -
numpy通用函数(ufunc)
在Numpy中存在着通用函数和聚合去对数据进行处理,numpy通过向量进行对数据数组的计算,而这些向量主要依靠一些通用函数,而聚合是numpy对面对大量数据时获取描述性统计信息的方法。通常在通用函数(ufunc)中利用向量实现numpy数据处理速度的提高。import numpy as npimport mathimport timex=[i*0.001 for i in np.arange(1000000)]#在python 3.8中已经更新移除了time.clock(),可...原创 2022-01-25 00:20:16 · 1715 阅读 · 0 评论 -
numpy批量处理
为神经网络传输数据做基础铺垫,numpy下简单的数据批量处理import numpy as np#按正态生成10000个形状为2×3的矩阵dtrain=np.random.randn(10000,2,3)print(dtrain.shape)#打乱数据np.random.shuffle(dtrain)#定义批量大小每次取100个数据Size=100#批量处理for i in range(0,len(dtrain),Size): Summ=np.sum(dtrain[i:i+S原创 2022-01-24 23:30:39 · 993 阅读 · 0 评论 -
numpy获取元素
利用seed函数可创造特定的随机数数列实现随机数的复现通过random静态对象调用seed函数import numpy as npnp.random.seed(2019)nd8=np.random.random([10])#获取指定位置的数据print(nd8[2])#截取一段数据print(nd8[3:5])#截取固定间隔数据print(nd8[1:4:1])#倒序取数print(nd8[::-2])nd9=np.random.random([3,3])#截取多维数组中指原创 2022-01-24 22:49:50 · 1481 阅读 · 0 评论 -
生成numpy数组
numpy简介由多维数组对象和用于处理数组的例程集合组成的库。支持高级大量的维度数组与矩阵运算。原创 2022-01-23 23:06:32 · 339 阅读 · 0 评论