![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Pytorch学习笔记
文章平均质量分 71
Pytorch
涂作权的博客
To do what I want to do!
展开
-
55_pytorch,自定义数据集
1.55.自定义数据1.55.1.数据传递机制我们首先回顾识别手写数字的程序:...Dataset = torchvision.datasets.MNIST(root='./mnist/', train=True, transform=transform, download=True,)dataloader = torch.utils.data.DataLoader(dataset=Dataset, batch_size=64, shuffle=True)...for epoch in ran转载 2021-03-06 22:02:44 · 1753 阅读 · 0 评论 -
54_pytorch GAN(生成对抗网络)、Gan代码示例、WGAN代码示例
1.54.GAN(生成对抗网络)1.54.1.什么是GAN2014 年,Ian Goodfellow 和他在蒙特利尔大学的同事发表了一篇震撼学界的论文。没错,我说的就是《Generative Adversarial Nets》,这标志着生成对抗网络(GAN)的诞生,而这是通过对计算图和博弈论的创新性结合。他们的研究展示,给定充分的建模能力,两个博弈模型能够通过简单的反向传播(backpropagation)来协同训练。这两个模型的角色定位十分鲜明。给定真实数据集R,G是生成器(generator),它转载 2021-03-06 21:44:02 · 1390 阅读 · 0 评论 -
53_Auto-Encoders和Variational AutoEncoders(VAE)、PCA降维和Auto-Encoders降维的比较、Auto-Encoders变种、pytorch实现等
1.53.Auto-Encoders和Variational AutoEncoders(VAE)1.53.1.无监督学习1.53.2.Auto-Encoders1.53.3.How to Train?1.53.4.Auto-Encoders的训练1.53.5.PCA降维和Auto-Encoders降维的比较1.53.6.Auto-Encoders变种1.53.6.1.Denoising AutoEncoders,去噪 AutoEncoders1.53.6.2.Dropout AutoEnco原创 2021-03-05 13:17:57 · 1890 阅读 · 0 评论 -
52_LSTM及简介,RNN单元的内部结构,LSTM单元的内部结构,原理,遗忘门,输入门,输出门,LSTM变体GRU,LSTM变体FC-LSTM,Pytorch LSTM API介绍,案例(学习笔记)
1.52.LSTM1.52.1.LSTM简介1.52.2.RNN单元的内部结构1.52.3.LSTM单元的内部结构1.52.4.原理1.52.5.遗忘门1.52.6.输入门1.52.7.输出门1.52.8.Intuitive Pipeline1.52.9.LSTM变体GRU1.52.10.LSTM变体FC-LSTM1.52.11.Pytorch LSTM API介绍1.52.11.1.nn.LSTM1.52.11.2.nn.LSTMCell1.52.12.案例11.52.13.原创 2021-03-04 12:41:19 · 5325 阅读 · 1 评论 -
51.RNN训练难题--梯度弥散与梯度爆炸、详解机器学习中的梯度消失、爆炸原因及其解决方法;RNN网络的梯度推导公式(学习笔记,学习整理)
1.51.RNN训练难题–梯度弥散与梯度爆炸1.51.1.梯度弥散与梯度爆炸1.51.2.详解机器学习中的梯度消失、爆炸原因及其解决方法1.51.2.1.前言1.51.2.2.第一部分:为什么要使用梯度更新规则1.51.2.3.第二部分:梯度消失、爆炸1.51.2.3.1.深层网络角度1.51.2.3.2.激活函数角度1.51.2.4.第三部分:梯度消失、爆炸的解决方案1.51.2.4.1.方案1-预训练加微调1.51.2.4.2.方案2-梯度剪切、正则1.51.2.4.3.方案3-r原创 2021-03-01 12:49:02 · 2421 阅读 · 0 评论 -
机器学习训练中常见的问题和挑战:训练数据的数量不足、训练数据不具代表性、低质量数据、无关特征、过拟合训练数据、欠拟合训练数据
1.50.机器学习训练中常见的问题和挑战转载博文:https://blog.csdn.net/Datawhale/article/details/109006583Datawhale干货作者:奥雷利安·杰龙由于我们的主要任务是选择一种学习算法,并对某些数据进行训练,所以最可能出现的两个问题不外乎是“坏算法”和“坏数据”,本文主要从坏数据出发,带大家了解目前机器学习面临的常见问题和挑战,从而更好地学习机器学习理论。1.50.1.训练数据的数量不足要教一个牙牙学语的小朋友什么是苹果,你只需要指着苹转载 2021-02-21 17:00:02 · 9222 阅读 · 1 评论 -
pytorch 时间序列预测,梯度裁剪
1.49.PyTorch时间序列预测1.49.1.问题描述已知 [k, k+n)时刻的正弦函数,预测 [k+t, k+n+t)时刻的正弦曲线。因为每个时刻曲线上的点是一个值,即feature_len=1如果给出50个时刻的点,即seq_len=50如果只提供一条曲线供输入,即batch=1输入的shape=[seq_len, batch, feature_len] = [50, 1, 1]。代码实现# -*- coding: UTF-8 -*-import torchimpo转载 2021-02-21 00:21:09 · 752 阅读 · 0 评论 -
RNN Layer使用(学习笔记)
1.48.RNN Layer使用原创 2021-02-20 18:04:04 · 461 阅读 · 1 评论 -
Pytorch实现基本循环神经网络RNN (3)
1.47.Pytorch实现基本循环神经网络RNN (3)Recurrent Neural networks(Rumelhart, 1986)主要用来处理序列型数据,具有对以往数据的记忆功能。下图所示,输入为input和一个状态Hidden0, 输出为output和hidden1.一般地,对输入到RNN进行处理的第t个数据,也就是第t时刻,输出的隐藏状态可以表示为:在RNN对序列数据进行处理时,采用参数共享机制,即权重是相同的。RNN有很多变体,上述的是最简单的一种形式,中间也可以输入y(t)。标转载 2021-02-20 17:50:38 · 469 阅读 · 0 评论 -
循环神经网络RNN
1.46.循环神经网络RNNRNN是Recurrent Neural Networks的缩写,即循环神经网络,它常用于解决序列问题。RNN有记忆功能,除了当前输入,还把上下文环境作为预测的依据。它常用于语音识别、翻译等场景之中。RNN是序列模型的基础,尽管能够直接调用现成的RNN算法,但后续的复杂网络很多构建在RNN网络的基础之上,如Attention方法需要使用RNN的隐藏层数据。RNN的原理并不复杂,但由于其中包括循环,很难用语言或者画图来描述,最好的方法是自己手动编写一个RNN网络。本篇将介绍RN转载 2021-02-20 16:28:42 · 564 阅读 · 0 评论 -
47_pytorch循环神经网络(学习笔记)
原创 2021-02-20 11:23:01 · 182 阅读 · 0 评论 -
循环神经网络(RNN)
对于人类而言,以前见过的事物会在脑海中留下记忆,虽然随后记忆会慢慢消失,但是每当经过提醒,人们往往可以重拾记忆。在神经网络中也是一样,之前介绍的CNN模型都是与时间序列无关的模型,它有明显的局限性,就是只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。所以接下来要介绍一种在序列问题和自然语言处理等领域取得很大成功的模型——循环神经网络。一. 循环神经网络(RNN)具体来讲,卷积神经网络相当于人类的视觉,但转载 2021-02-20 11:11:50 · 5384 阅读 · 0 评论 -
Cifar10与ResNet18实战、lenet5、resnet(学习笔记)
1.44.Cifar10与ResNet18实战Pytorch工程中建立pytorch,在pytorch里面创建lenet5.py、main.py、resnet.py。1.44.1.lenet5.py# -*- coding: UTF-8 -*-import torchfrom torch import nnclass Lenet5(nn.Module): """ for cifar10 dataset. """ def __init__(self):原创 2021-02-19 22:38:38 · 576 阅读 · 0 评论 -
44_pytorch数据增强,Resize,Flip,Rotate,Random Move & Crop,Scale,Crop Part,Noise
1.42.数据增强(学习笔记)案例健壮的模型需要大量的数据,但实际操作中可能并没有足够多的数据,于是便有了数据增强技术,比如对一类图片从不同角度拍摄,在不同光线亮度下拍摄等,增加该类图像的多样性。[1]Flip: 翻转[2]Rotation: 旋转[3]Scale: 放缩,Resize函数[4]Crop: 裁剪[5]在原有数据中加入noise代码示例:# -*- coding: UTF-8 -*-import torchimport torchvisio原创 2021-02-19 15:57:13 · 732 阅读 · 0 评论 -
43_pytorch nn.Module,模型的创建,构建子模块,API介绍,Sequential(序号),ModuleList,ParameterList,案例等(学习笔记)
1.40.PyTorch nn.Module1.40.1.模型的创建1.40.2.构建子模块1.40.3.nn.Module API介绍1.40.3.1.核心功能1.40.3.2.查看模块1.40.3.3.类型转换1.40.3.4.设置功能1.40.3.5.注册功能1.40.3.6.Sequential(序号)1.40.3.7.ModuleList模型列表1.40.3.8.ParameterList参数列表1.40.4.nn.Module 其它API介绍1.40.5.nn.Modu原创 2021-02-19 02:53:56 · 871 阅读 · 0 评论 -
42_ResNet (深度残差网络)---学习笔记
1.39.ResNet (深度残差网络)Why call Residual# -*- coding: UTF-8 -*-import torch.nn as nnimport torch.nn.functional as Fclass ResBlk(nn.Module): def __init__(self, ch_in, ch_out): self.conv1 = nn.Conv2d(ch_in, ch_out, kernel_size=3, stri原创 2021-02-18 17:25:41 · 361 阅读 · 0 评论 -
41_经典卷积网络、LeNet、AlexNet、VGG、GoogleNet、ResNet、NIN、DenseNet、EfficientNet、MobileNetV1/2/3、SENet等
1.38.经典卷积网络1.38.1.LeNet1.38.1.1.介绍1.38.1.2.网络结构1.38.1.3.代码实现1.38.2.AlexNet1.38.2.1.介绍1.38.2.2.网络结构1.38.2.3.代码实现1.38.3.VGG1.38.3.1.介绍1.38.3.2.网络结构 VGG-161.38.3.3.代码实现1.38.4.GoogleNet1.38.4.1.介绍1.38.4.2.网络结构1.38.4.3.代码实现1.38.5.ResNet1.38.5.原创 2021-02-18 14:59:07 · 2717 阅读 · 1 评论 -
40_pytorch Batch Norm
1.37.Batch Normalization,批规范化1.37.1.Batch Norm介绍1.37.2.Intuitive explanation1.37.3.Intuitive explanation1.37.4.Feature scaling1.37.5.BatchNorm1d、BatchNorm2d、BatchNorm3d1.37.5.1.nn.BatchNorm1d(num_features)1.37.5.2.nn.BatchNorm2d(num_features)1.37.5原创 2021-02-17 15:17:40 · 512 阅读 · 0 评论 -
理解CNN参数及PyTorch实例,卷积核kernel,层数Channels,步长Stride,填充Padding,池化Pooling,PyTorch中的相关方法,MNIST例子
1.34.理解CNN参数及PyTorch实例1.34.1.卷积核kernel1.34.2.层数Channels1.34.3.步长Stride1.34.4.填充Padding1.34.5.池化Pooling1.34.6.PyTorch中的相关方法1.34.7.MNIST例子1.34.理解CNN参数及PyTorch实例参考地址:http://guileen.github.io/2019/12/24/understanding-cnn/在实际的项目中,会发现CNN有多个参数需要调整,本文主要目转载 2021-02-16 20:44:48 · 6010 阅读 · 2 评论 -
39_上下采样、MaxPool2d、AvgPool2d、ReLU案例、二维最大池化层和平均池化层、填充和步幅、多通道
1.34.PyTorch Down/up sample (pytorch上下采样)1.34.1. 首先介绍下采样1.34.1.1. MaxPool2d案例1.34.1.2. AvgPool2d案例1.34.2. F.interpolate案例(上采样)1.34.3.ReLU案例1.34.PyTorch Down/up sample (pytorch上下采样)参考地址:https://cloud.tencent.com/developer/article/1542468pooling(池化)层原创 2021-02-16 16:17:23 · 6149 阅读 · 0 评论 -
卷积神经网络、比较MLPS和CNNS、滤波器、CNN各层的作用、在Pytorch可视化CNN
1.33.卷积神经网络1.33.1.卷积 和 神经网络1.33.1.1.比较MLPS和CNNS1.33.1.2.计算机如何看图像?1.33.1.3.建立自己的滤波器1.33.2.完整的卷积神经网络(CNNS)1.33.2.1.CNN各层的作用1.33.2.2.在Pytorch可视化CNN1.33.卷积神经网络参考文章:https://blog.csdn.net/kstheme/article/details/99689564https://blog.csdn.net/zsd0819qw转载 2021-02-16 00:51:08 · 2308 阅读 · 1 评论 -
35_pytorch 过拟合解决办法 (Early Stop, Dropout)
1.32.Early Stop, Dropout1.32.1.Early StoppingEarly Stop的概念非常简单,在我们一般训练中,经常由于过拟合导致在训练集上的效果好,而在测试集上的效果非常差。因此我们可以让训练提前停止,在测试集上达到最好的效果时候就停止训练,而不是等到在训练集上饱和再停止,这个操作叫做Early Stop随着横坐标epoch的进行,train部分的accuracy持续上升,train部分的accuracy增加到临时点后会开始发生over fitting现象,我们一般原创 2021-02-14 01:51:06 · 2390 阅读 · 0 评论 -
34_pytorch,动量与lr衰减(momentum,learning rate)--学习笔记
1.31.动量与学习率衰减1.31.1.动量1.31.2.学习率衰减1.31.动量与学习率衰减1.31.1.动量(1)没有引入动量(2)引入动量后从图中可以看到,引入动量后loss函数更新的幅度减小,同时找到了全局最优解(3)两种情况对比(4)引入动量代码1.31.2.学习率衰减(1)三种情况下学习率对训练的影响学习率过小,会使得收敛太慢,但是却可以收敛到极小值点学习率过大,会使得目标函数甚至越来越大,或者始终在极小值点旁边徘徊,无法收敛到极小值点。但是前面收敛很快原创 2021-02-13 23:18:27 · 644 阅读 · 0 评论 -
深度学习过拟合解决方案
本文转自:https://blog.csdn.net/zhang2010hao/article/details/893393271.29.深度学习过拟合解决方案1.29.1.解决方案对于深度学习网络的过拟合,一般的解决方案有:Early stop在模型训练过程中,提前终止。这里可以根据具体指标设置early stop的条件,比如可以是loss的大小,或者acc/f1等值的epoch之间的大小对比。More data更多的数据集。增加样本也是一种解决方案,根据不同场景和数据不同的数据增强方法转载 2021-02-13 18:52:26 · 652 阅读 · 0 评论 -
31,32,33_过拟合、欠拟合的概念、L2正则化,Pytorch过拟合&欠拟合,交叉验证-Train-Val-Test划分,划分训练集和测试集,K-fold,Regularization
1.26.Pytorch过拟合&欠拟合1.26.1.理想化情况1.26.1.1.场景一:线性模型—房价预测1.26.1.2.场景二:非线性模型—GPA1.26.2.真实情况1.26.3.模型学习能力1.26.4.欠拟合与过拟合1.26.Pytorch过拟合&欠拟合以下参考:https://blog.csdn.net/weixin_43886278/article/details/1043163211.26.1.理想化情况1.26.1.1.场景一:线性模型—房价预测横坐原创 2021-02-12 21:57:48 · 1472 阅读 · 1 评论 -
30_visdom可视化、TensorboardX及其案例、安装visdom、使用visdom的案例
1.25.visdom可视化1.25.1.TensorboardXPytorch也能用的tensorboard,此外Pytorch还有visdom可视化。首先上项目地址:https://github.com/lanpa/tensorboardX1.25.2.安装(base) C:\Users\toto>pip install tensorboardXCollecting tensorboardX Downloading tensorboardX-2.1-py2.py3-none-any原创 2021-02-12 17:45:02 · 762 阅读 · 0 评论 -
28,29_激活函数与GPU加速、Tanh和sigmoid、ReLU、Leaky ReLU、SELU、Softplus、GPU accelerated、案例、argmax
1.24.激活函数与GPU加速关于激活函数的图形(Tanh和sigmoid的图形形状如下):ReLU的形状如下:Leaky ReLU的激活函数如下:SELU的图形如下:Softplus的形状如下:GPU accelerateddevice = torch.device('cuda:0')net = MLP().to(device)optimizer = optim.SGD(net.parameters(), lr=learning_rate)criteon = nn.Cross原创 2021-02-12 01:01:42 · 918 阅读 · 0 评论 -
27_pytorch全连接层,使用MNIST的分类案例(学习笔记)
# -*- coding: UTF-8 -*-import torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom torchvision import datasets, transformsbatch_size=200learning_rate=0.01epochs=10# torchvision.transforms.Compose()类。这个类的主要作用是原创 2021-02-11 21:36:52 · 545 阅读 · 3 评论 -
22个激活函数,ReLU、RReLU、LeakyReLU、PReLU、Sofplus、ELU、CELU、SELU、GELU、ReLU6、Sigmoid、Tanh、Softsign、Hardtanh等
转自:https://www.pianshen.com/article/33331174884/1.22.Linear常用激活函数1.22.1.ReLU torch.nn.ReLU()1.22.2.RReLU torch.nn.RReLU()1.22.3.LeakyReLU torch.nn.LeakyReLU()1.22.4.PReLU torch.nn.PReLU()1.22.5.Sofplus torch.nn.Softplus()1.22.6.ELU torch.nn.EL转载 2021-02-11 18:20:17 · 7060 阅读 · 0 评论 -
26_Pytorch多分类,Softmax多分类实战,利用神经网络进行分类
此文为学习博文整理出11.21.Pytorch多分类问题1.21.1.PyTorch:Softmax多分类实战1.21.1.1.MNIST数据集1.21.1.2.Softmax分类1.21.1.3.PyTorch实战1.21.2.利用神经网络进行分类1.21.Pytorch多分类问题1.21.1.PyTorch:Softmax多分类实战多分类一种比较常用的做法是在最后一层加softmax归一化,值最大的维度所对应的位置则作为该样本对应的类。本文采用PyTorch框架,选用经典图像数据集mn原创 2021-02-11 17:01:24 · 2100 阅读 · 2 评论 -
PyTorch的六个学习率调整
本文截取自《PyTorch 模型训练实用教程》,获取全文pdf请点击:https://github.com/tensor-yu/PyTorch_Tutorial文章目录一、pytorch中六种学习率调整方法1.lr_scheduler.StepLR2.lr_scheduler.MultiStepLR3.lr_scheduler.ExponentialLR4.lr_scheduler.CosineAnnealingLR5.lr_scheduler.ReduceLROnPlateau6.lr_s转载 2021-02-10 13:55:17 · 1309 阅读 · 0 评论 -
PyTorch的十个优化器(SGD,ASGD,Rprop,Adagrad,Adadelta,RMSprop,Adam(AMSGrad),Adamax,SparseAdam,LBFGS)
本文截取自《PyTorch 模型训练实用教程》,获取全文pdf请点击:https://github.com/tensor-yu/PyTorch_Tutorial文章目录1 torch.optim.SGD2 torch.optim.ASGD3 torch.optim.Rprop4 torch.optim.Adagrad5 torch.optim.Adadelta6 torch.optim.RMSprop7 torch.optim.Adam(AMSGrad)8 torch.optim.Adam转载 2021-02-10 13:07:49 · 5368 阅读 · 0 评论 -
pytroch 数据增量 transforms的二十二个方法
本文转自:https://blog.csdn.net/u011995719/article/details/85107009官方文档:https://pytorch.org/vision/0.8/transforms.html本文截取自《PyTorch 模型训练实用教程》,获取全文pdf请点击:https://github.com/tensor-yu/PyTorch_Tutorial文章目录一、 裁剪——Crop1.随机裁剪:transforms.RandomCrop2.中心裁剪:transfo转载 2021-02-10 10:47:30 · 510 阅读 · 0 评论 -
25_PyTorch的十九个损失函数(L1Loss、MSELoss、CrossEntropyLoss 、CTCLoss、NLLLoss、PoissonNLLLoss 、KLDivLoss等)
1.20.PyTorch的十九个损失函数1.20.1.L1Loss(L1范数损失)1.20.2.MSELoss(均方误差损失)1.20.3.CrossEntropyLoss (交叉熵损失)1.20.4.CTCLoss(连接时序分类损失)1.20.5.NLLLoss(负对数似然损失)1.20.6.PoissonNLLLoss (目标泊松分布的负对数似然损失)1.20.7.KLDivLoss(KL散度损失)1.20.8.BCELoss(二进制交叉熵损失)1.20.9.BCEWithLogits原创 2021-02-10 02:13:51 · 4828 阅读 · 1 评论 -
24-Logistic Regression
关于Logistic Regression,可以参考笔者整理的一篇博文:https://blog.csdn.net/tototuzuoquan/article/details/112855132以下是学习时的课程资料(为了避免忘记,抄录一下资料)原创 2021-02-04 23:01:31 · 233 阅读 · 0 评论 -
22_2D函数优化实例
1.19. 2D函数优化实例为了演示优化神经网络参数得到loss极小值的过程,和不同初始值可能产生不同的极值点,在此引入了如下图所示函数:从图中可以看出该函数2D图像呈碗状,有四个极小值点,它的极值点有:接下来我们通过求解该函数极小值,来测试我们设计的优化器效果如何。画图代码:# -*- coding: UTF-8 -*-import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import原创 2021-02-04 22:20:09 · 364 阅读 · 0 评论 -
20、21_链式法则、MLP(多层感知器模型)反向传播
1.17.链式法则x经过参数w1和b1得到y1,y1再通过w2和b2得到y2,要求y2对w1的导数,可以求y2对y1然后y1对w1的导数。PyTorch可以自动使用链式法则对复杂的导数求解。# -*- coding: UTF-8 -*-import torchx = torch.tensor(1.2)w1 = torch.tensor(2.3, requires_grad=True)b1 = torch.tensor(1.3)y1 = x * w1 + b1w2 = torch原创 2021-02-04 00:09:55 · 321 阅读 · 0 评论 -
20_感知机(单一感知机,多输出感知机)+ 推导
1.16.感知机1.16.1.单一感知机神经网络最简单的结构就是单输出的单层感知机,单层感知机只有输入层和输出层,分别代表了神经感受器和神经中枢。案例:# -*- coding: UTF-8 -*-import torchfrom torch.nn import functional as Fx = torch.randn(1, 10)w = torch.randn(1, 10, requires_grad=True)o = torch.sigmoid(x @ w.t())原创 2021-02-03 20:30:50 · 435 阅读 · 0 评论 -
15_torch.sigmoid,torch.nn.Sigmoid之间的区别
torch.sigmoid(input, *, out=None) → TensorCLASS torch.nn.Sigmoid案例:import torchm = torch.nn.Sigmoid()input = torch.randn(2)output = m(input)print(output)原创 2021-02-03 20:19:53 · 1707 阅读 · 0 评论 -
17,18_常见函数梯度,激活函数梯度(Sigmoid、Tanh、ReLu)
1. 常见函数梯度1.1 常见函数2. 激活函数及其梯度2.1 激活函数Derivative (倒数)Sigmoid / LogisticSigmoid Derivative (求导)torch.sigmoid# -*- coding: UTF-8 -*-import torcha = torch.linspace(-100, 100, 10)print(a)"""输出结果:tensor([-100.0000, -77.7778, -55.5556, -3原创 2021-02-02 00:28:27 · 932 阅读 · 1 评论