- 博客(222)
- 收藏
- 关注
原创 双向循环神经网络
import torchfrom torch import nnfrom d2l import torch as d2lbatch_size,num_steps = 32,35train_iter,vocab = d2l.load_data_time_machine(batch_size,num_steps)vocab_size,num_hiddens,num_layers = len(vocab),256,2num_inputs = vocab_sizedevice = torch.d.
2022-02-19 16:37:51
995
原创 深度循环神经网络
import torchfrom torch import nnfrom d2l import torch as d2lbatch_size,num_steps = 32,35train_iter,vocab = d2l.load_data_time_machine(batch_size,num_steps)vocab_size,num_hiddens,num_layers = len(vocab),256,2num_inputs = vocab_sizedevice = torch.d.
2022-02-19 16:27:21
788
原创 门控循环单元——GRU
门更新门——能关注的机制重置门——能遗忘的机制候选隐状态隐状态import torchfrom torch import nnfrom d2l import torch as d2lbatch_size,num_steps = 32,35train_iter,vocab = d2l.load_data_time_machine(batch_size,num_steps)#初始化模型参数def get_params(vocab_size,num_hiddens,device):
2022-02-18 21:08:16
773
原创 循环神经网络——RNN
RNN的结构:RNN的分类:import mathimport torchfrom torch import nnfrom torch.nn import functional as Ffrom d2l import torch as d2lbatch_size, num_steps = 32, 35train_iter, vocab = d2l.load_data_time_machine(batch_size, num_steps)#定义模型num_hiddens = 25
2022-02-18 17:38:15
719
原创 序 列模型
时序模型中,当前数据与之前观察到的数据有关自回归模型使用自身过去数据预测未来马尔可夫模型假设当前只跟最近少数数据相关,进而简化模型潜变量模型使用潜变量来概括历史信息导入相关的包import torchfrom torch import nnfrom d2l import torch as d2limport matplotlib.pyplot as plt使用正弦函数和一些可加性噪声生成序列数据T = 1000 #总的的点数x = torch.arange(1,T+1,dtyp.
2022-02-13 19:39:45
736
原创 CNN——ResNet
残差块:ResNet18结构:完整的代码:import torchimport torchvisionfrom torch import nnfrom torch.utils.data import DataLoader,Datasetfrom torchvision import transformsfrom d2l import torch as d2lfrom torch.nn import functional as F#数据集def load_data_fashion_
2022-02-12 17:55:03
279
原创 批量规范化(batch normalization)
批量规范化可持续加速深层网络的收敛速度。可应用于单个可选层,也可应用于所有层。在每次训练迭代中,首先规范化输入,即通过减去均值并除以其标准差,两者均基于当前小批量处理。然后,应用比例系数和比例偏移。只有使用足够大的小批量,BN才有效且稳定。对于全连接层,BN置于全连接层中的放射变换和激活函数之间 对于卷积层,BN置于卷积层之后和非线性激活函数之前batch normalization API参考文档https://pytorch.org/docs/master/generated/torch.n
2022-02-12 16:09:35
1641
原创 CNN——NiN
NiN块以一个普通卷积层开始,后面是两个1*1的卷积层。import torchimport torchvisionfrom torch import nnfrom torch.utils.data import Dataset,DataLoaderfrom torchvision import transformsfrom d2l import torch as d2l#准备数据集def load_data_fashion_mnist(batch_size,resize): t
2022-02-09 20:36:41
347
原创 CNN——VGG
import torchimport torchvisionfrom torch import nnfrom torch.utils.data import Dataset,DataLoaderfrom torchvision import transformsfrom d2l import torch as d2ldef load_data_fashion_mnist(batch_size,resize): trans = [] if resize: tra.
2022-02-08 22:59:02
111
原创 CNN——AlexLet
import torchimport torchvisionfrom torch import nnfrom torch.utils.data import Dataset,DataLoaderfrom torchvision import transformsfrom d2l import torch as d2ldef load_data_fashion_mnist(batch_size,resize): trans = [] if resize: tr.
2022-02-08 19:52:58
416
原创 CNN——LeNet
LeNet主要用于手写数字的识别。import torchimport torchvisionfrom torch import nnfrom torchvision import transformsfrom torch.utils.data import Dataset,DataLoaderdevice = torch.device('cuda')print(device)#准备数据集train_data = torchvision.datasets.FashionMNIST(r
2022-02-03 22:47:57
923
原创 卷积神经网络CNN
CNN是一类强大的、为处理图像数据而设计的神经网络图像的平移不变性使我们以相同的方始处理局部图像,而不在乎它的位置局部性意味着计算相应的隐藏表示只需一小部分局部图像像素在图像处理中,卷积层通常比全连接层需要更少的参数,但仍是高效的模型CNN是一类特殊的神经网络,它可以包含多个卷积层多个输入和输出通道使模型在每个空间位置可以获得图像的多方面特征图像卷积互相关运算:输出大小=输入大小-卷积核大小计算二维互相关运算import torchfrom torch import nnfrom
2022-02-02 23:52:20
1353
原创 PyTorch神经网络基础
块和层块:可以描述单个层、由多个层组成的组件或整个模型本身。使用块进行抽象可以将一些块组成更大的组件。在编程角度,块由类表示。它的任何子类都必须定义一个将其输入转化为输出的前向传播函数,并且必须存储任何必须的参数。先看MLP的代码:import torchfrom torch import nnnet = nn.Sequential(nn.Linear(20,256),nn.ReLU(),nn.Linear(256,10))x = torch.rand(2,20)net(x) #net
2022-01-26 22:10:03
2360
原创 模型选择与拟合
模型选择训练误差:模型在训练数据上的误差泛化误差:模型在新数据上的误差验证数据集:一个用来评估模型好坏的数据集,选择模型的超参数测试数据集:只用一次的数据集K-则交叉验证:数据集不够欠拟合和过拟合过拟合(overfitting):将模型在训练数据上拟合的比在潜在分布中更接近的现象正则化(regularization):用于对抗过拟合的技术模型容量:拟合各种函数的能力,低容量的模型难以拟合训练数据,高容量的模型可以记住所有的训练数据模型容量对拟合的影响拟合函数:...
2022-01-25 23:42:53
355
原创 PyTorch感知机
感知机介绍详细参考:感知机感知机是一个二分类模型感知机的求解算法等价于使用批量大小为1的梯度下降单层感知机不能拟合XOR函数多层感知机使用隐藏层和 激活函数来得到非线性模型常用的激活函数:Sigmoid,Tanh,ReLU使用Softmax处理多类分类超参数是隐藏层参数和各个隐藏层大小多层感知机的实现import torchimport torchvisionfrom torch.utils.data import Dataset, DataLoaderfrom torchvis
2022-01-25 23:08:30
389
原创 matplotlib的使用
导入相关的库import numpy as npimport matplotlib.pyplot as plt生成一张简单的函数图像:y = 2*x+1x = np.linspace(-2,2,50) #设置x轴的取值范围和描绘函数图像的点的个数y = 2 * x + 1plt.plot(x,y)plt.show()figure()的用法,y1 = 2*x+1 和y2 = x^2y1 = 2*x+1y2 = x**2#显示函数y = 2x+1的图像plt.figure()
2022-01-23 16:40:52
1201
原创 PyTorch线性回归
回归:一个或多个自变量与因变量之间的关系之间建模的方法,经常用来表示输入和输出之间的关系分类:预测数据属于一组类别的哪一个一个简单的线性模型线性回归是对n维输入的加权,外加偏差使用平方损失来衡量预测值与真实值的差异(乘1/2为了求导方便,并没有太大影行)线性回归有显示解线性回归可以看成单层神经网络梯度下降梯度下降是通过不断沿着反梯度方向更新参数求解学习率lr不能太大也不能太小太小:计算次数增加,计算昂贵太大:导致模型难以收敛小批量随机梯度下降批量大小batch_size不能
2022-01-20 22:49:54
1338
1
原创 PyTorch自动求导
假设对函数y = 2xx关于列向量x求导import torchx = torch.arange(4.0)x.requires_grad_(True) # 等价于x=torch.arange(4.0,requires_grad=True)x.grad # 默认值是Noney = 2 * torch.dot(x, x)ytensor(28., grad_fn=<MulBackward0>) #28 = 2 * (0+1+4+9)反向传播计算y关于x每一个分量的梯度y.ba
2022-01-19 22:26:45
968
原创 PyTorch数据操作
导入torchimport torch张量(Tensor)表示由一个数值组成的数组,这个数组可能具有多个维度,具有一个维度的数组是向量(vector),具有两个维度的数组是矩阵(matrix)…arange创建一个行向量xshape属性输出张量的形状numel()张量中元素的个数x = torch.arange(12)print(x)print(x.shape)print(x.numel())tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
2022-01-17 22:27:20
842
原创 一个完整的神经网络
import torchimport torchvisionfrom torch import nnfrom torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequentialfrom torch.utils.data import DataLoader#准备数据集from torch.utils.tensorboard import SummaryWriterdevice = torch.device('cuda')print(
2022-01-15 16:59:55
333
原创 模型的保存与加载
一.模型的保存import torchimport torchvisionvgg16 = torchvision.models.vgg16(pretrained=False)#保存方式一,模型结构和参数都保存了torch.save(vgg16,"vgg16_method1.pth")#保存方式二,保存模型参数,优先使用torch.save(vgg16.state_dict(),"vgg16_method2.pth")二.模型的加载import torchimport torch
2022-01-13 17:43:43
467
原创 现有模型的修改
方法一:按照目标增加一层线性层对已有模型修改方法二:直接修改参数import torchimport torchvisionfrom torch import nnvgg16_false = torchvision.models.vgg16(pretrained=False)vgg16_true = torchvision.models.vgg16(pretrained=True)print(vgg16_true)#train_data = torchvision.datasets
2022-01-13 17:19:37
466
原创 Python面向对象
基本概念类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。数据成员:类变量或者实例变量, 用于处理类及其实例对象的相关的数据。方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。局部变量:定义在方法中的变量,只作用于当前实例的类。实例变量:在类
2022-01-06 20:24:25
72
原创 PyTorch深度学习——优化函数
直接参考官方文档就可以了:Optimimport torchimport torchvisionfrom torch import nnfrom torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linearfrom torch.utils.data import DataLoaderdataset = torchvision.datasets.CIFAR10(root="./dataset",train=False,transf
2021-07-12 00:16:12
220
原创 PyTorch深度学习——搭建神经网络小实验
以下图片的CIFAR10神经网络模型框架来搭建神经网络:由以下公式,解得padding=2具体代码:import torchfrom torch import nnfrom torch.nn import Conv2d, MaxPool2d, Flatten, Linear, Sequentialfrom torch.utils.tensorboard import SummaryWriterclass Siri(nn.Module): def __init__(self):
2021-07-11 21:08:36
274
原创 PyTorch深度学习——非线性激活
官方文档传送:ReLU对一个tensor经过ReLU优化:import torchfrom torch import nnfrom torch.nn import ReLUinput = torch.tensor([[1,-1], [-4,5]])input = torch.reshape(input,(-1,1,2,2))print(input.shape)class Siri(nn.Module): def __init__(
2021-07-07 23:59:40
174
1
原创 PyTorch深度学习——最大池化层的使用
最大池化层的作用:(1)首要作用,下采样(2)降维、去除冗余信息、对特征进行压缩、简化网络复杂度、减小计算量、减小内存消耗等(3)实现非线性、(4)扩大感知野。(5)实现不变性,其中不变形性包括,平移不变性、旋转不变性和尺度不变性。官方参考文档:MAXPOOL2D重要的 参数:相关计算公式:下面举一个例子:通过对一个数组操作,获取其平均采样值:import torchfrom torch import nnfrom torch.nn import MaxPool2din
2021-07-06 23:59:45
4636
2
原创 PyTorch深度学习——nn
神经网络的学习,可以参考官方文档:nn.Moudle下面给一个调用nn.Moudle的小例子:import torchfrom torch import nnclass Hue(nn.Module): def __init__(self): super().__init__() def forward(self,input): output = input + 1 return outputhue = Hue()x = to
2021-07-03 00:23:21
238
2
原创 PyTorch深度学习——DataLoader使用
dataloader的使用,相关参数用法可以参考官方文档说明:dataloaderimport torchvision#准备测试数据from torch.utils.data import DataLoaderfrom torch.utils.tensorboard import SummaryWritertest_data = torchvision.datasets.CIFAR10("./dataset",train=True,transform=torchvision.transfo
2021-07-02 00:59:23
540
原创 PyTorch深度学习——torchvision的数据集使用
torchvision提供了大量的数据集torchvision数据集下面我们以CIFAR10的使用为栗子:torchvision的简单数据下载与调用:import torchvisiontrain_set = torchvision.datasets.CIFAR10(root="./dataset",train=True,download=True) #训练集test_set = torchvision.datasets.CIFAR10(root="./dataset",train=Fa
2021-07-01 00:41:44
506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人