PyTorch
文章平均质量分 85
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。如果是工程师,应该优先选TensorFlow2;如果是学生或者研究人员,应该优先选择Pytorch.如果时间足够,最好TensorFlow2和Pytorch都要学习掌握。
wendy_ya
控制类专业在读研究生
展开
-
FGAN介绍及代码实现——基于生成对抗网络的缺失数据填补
包括GAIN在内的许多现有的方法都认为标签预测是一个数据填充后的问题,也就是说,他们首先填充数据,然后开发一个预测模型,就好像数据是完全观测的。数据填充完后,再使用新的预测器进行标签预测。将数据填充与标签预测两个任务分割开来。然而数据填充与标签预测之间的脱节很可能会损害标签预测的准确性,但我们最关心的任务实际上是标签预测任务的性能。在本节中,我们提出了一个数据填充与标签预测的统一框架,将数据填充和标签预测两个任务结合在一起。原创 2023-02-28 10:50:48 · 1454 阅读 · 3 评论 -
利用CNN对时序数据进行分类
数据集利用的是CPSC2020数据集。训练数据包括从心律失常患者收集的10个单导联心电图记录,每个记录持续约24小时。下载完成后的TrainingSet数据集包括两个文件夹,分别是data和ref。data和ref文件夹内分别有10个mat文件。data文件夹存储数据文件,每个文件以mat格式存储,n∗1n*1n∗1数组表示;ref文件夹为标签文件夹,每个文件以mat文件存储,结构体存储,包括S_ref,V_ref两个n*1数组,分别存储对应标签(S,V)的位置;采样率为 400。原创 2023-02-16 11:31:33 · 858 阅读 · 0 评论 -
基于PyTorch的生成对抗网络进阶(2)——利用PyTorch和GAN实现TripleGAN对手写数字生成和分类
在传统的GAN中,G、D双方博弈的过程使得D无法同时兼容两个角色,既判别输入的样本是来自真实数据分布还是生成器,同时预测数据的类标签。这样的做法只能关注到数据的一部分信息,即数据的来源,而无法考虑到数据的类标签信息。为了解决这个问题,在标准的GAN的基础上引入了分类器C,这样它就有了三个部分G、D和C,因为取名TripleGAN。G和C分别对图像和标签之间的条件分布进行特征描述,而D只需要专注于判别输入样本的来源真假。可以实现很好的分类效果。原创 2022-12-26 11:47:42 · 877 阅读 · 0 评论 -
PyTorch可视化工具库PyTorchViz下载安装详解
本文介绍PyTorch可视化工具库PyTorchViz的下载与安装以及测试代码。原创 2022-12-26 11:05:51 · 1657 阅读 · 2 评论 -
神经网络科研绘图可视化工具
本文介绍10种科研绘图可视化工具。原创 2022-12-15 10:39:30 · 1734 阅读 · 0 评论 -
PyTorch实战案例(五)——利用PyTorch实现循环神经网络RNN算法对mnist数据集分类
本文将介绍利用PyTorch实现循环神经网络RNN算法对mnist手写数字数据集进行分类。原创 2022-12-02 15:54:13 · 2495 阅读 · 0 评论 -
pytorch与keras的相互转换(代码以LeNet-5为例)
本文以LeNet-5为例,简单介绍pytorch与keras的相互转换。原创 2022-07-29 18:33:34 · 5036 阅读 · 1 评论 -
NAOMI代码详解
上文介绍了NAOMI: Non-Autoregressive MultiresolutionSequence Imputation(非自回归多分辨率序列填补)论文详解,链接如下:https://blog.csdn.net/didi_ya/article/details/125842598,本文介绍其代码实现。原创 2022-07-20 19:42:01 · 711 阅读 · 0 评论 -
基于GAN的时序缺失数据填补前言(1)——RNN介绍及pytorch代码实现
本专栏将主要介绍基于GAN的时序缺失数据填补。提起时序数据,就离不开一个神经网络——循环神经网络(Recurrent Neural Network, RNN)。RNN是一类用于处理序列数据的神经网络。RNN对具有序列特性的数据非常有效,它能挖掘数据中的时序信息。因为在介绍时序缺失数据填补,就离不开RNN的身影。本文将介绍循环神经网络RNN,并再次基础上完成基于pytorch的简单RNN代码实现,帮助更加深入了解RNN。关于循环神经网络RNN的介绍可以参考这篇文章:循环神经网络RNN入门介绍。...原创 2022-07-07 17:04:12 · 4151 阅读 · 10 评论 -
Wasserstein Slim GAIN with Gradient Penalty(WSGAIN-GP)介绍及代码实现——基于生成对抗网络的缺失数据填补
WSGAIN-GP全称Wasserstein Slim GAIN with Gradient Penalty,其目的在于减少影响普通GAN以及影响WGAN的主要警告,即因权重剪裁而产生的不良行为。WSGAIN-GP的架构与WSGAIN-CP几乎相同。WSGAIN-CP的架构可以参考文章:Wasserstein Slim GAIN with Clipping Penalty(WSGAIN-CP)介绍及代码实现——基于生成对抗网络的缺失数据填补。WSGAIN-GP的生成器与WSGAIN-CP的生成器完全相同。.原创 2022-07-06 10:36:06 · 1056 阅读 · 1 评论 -
Wasserstein Slim GAIN with Clipping Penalty(WSGAIN-CP)介绍及代码实现——基于生成对抗网络的缺失数据填补
WSGAIN-CP全称Wasserstein Slim GAIN with Clipping Penalty,其目的在于减少影响Slim GAN的主要问题,如模式崩溃和梯度消失。WSGAIN-CP的架构与SGAIN几乎相同。SGAIN的架构可以参考文章:Slim GAIN(SGAIN)介绍及代码实现——基于生成对抗网络的缺失数据填补。WSGAIN-CP的生成器与SGAIN的生成器相同,它们甚至共享相同的损失函数,可参考前文。...原创 2022-07-01 16:01:59 · 801 阅读 · 0 评论 -
Slim GAIN(SGAIN)介绍及代码实现——基于生成对抗网络的缺失数据填补
SGAIN网络架构如下:与GAIN的架构不同,SGAIN中没有Hint Generator,因此不会产生Hint Matrix(提示矩阵)。SGAIN的架构甚至更薄,因为生成器和判别器神经网络都只有两层,而在GAIN中它们都有三层。SGAIN在生成器和判别器的输出层使用双曲正切激活函数(又名tanh)。使用tanh而不是sigmoid激活函数的理由有两方面:SGAIN的体系结构还调用了两次判别器,一次针对真实数据,一次针对虚假数据。这使得SGAIN的架构更接近于Goodfellow等人在GAN中使用的架.原创 2022-06-27 20:45:53 · 1650 阅读 · 2 评论 -
GAIN的代码实现(4)——基于GAN的Spam数据集缺失数据填补(序)【改进版】
本文在上文基础上,介绍一下基于GAN的Spam数据集缺失数据填补改进版。希望先看完上文,再看本文,且以本文为主。Spam上文已经介绍过了,这里不再赘述。原创 2022-06-27 16:53:34 · 1267 阅读 · 7 评论 -
简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflow转pytorch)
本文以一段代码为例,简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflow转pytorch),可能介绍的没有那么详细,仅供参考。由于本人只熟悉pytorch,而对tensorflow一知半解,而代码经常遇到tensorflow,而我希望使用pytorch,因此简单介绍一下tensorflow转pytorch,可能存在诸多错误,希望轻喷~.........原创 2022-06-27 15:27:04 · 13029 阅读 · 0 评论 -
基于PyTorch的生成对抗网络实战(7)——利用Pytorch搭建SGAN(Semi-Supervised GAN)生成手写数字并分类
通过强制判别器网络输出分类标签,我们将生成对抗网络(GAN)扩展到半监督学习(Semi-Supervised)。我们在输入属于N类之一的数据集上训练生成器G和判别器D。在训练时,使用D来预测输入属于N+1类中的哪一个,其中一个额外的类被添加到G的输出中。我们表明,这种方法可以用来创建一个更有效的数据分类器,它允许生成比常规GAN更高质量的样本。论文可参考《Semi-Supervised Learning with Generative Adversarial Networks》。......原创 2022-06-25 11:28:38 · 1608 阅读 · 0 评论 -
基于PyTorch的生成对抗网络进阶(1)——利用PyTorch和GAN进行复杂函数拟合
在第一篇文章生成对抗网络进阶(1)——利用Keras和GAN进行简单函数拟合中,我们介绍了利用GAN进行曲线y=x2y = x^2y=x2拟合。本文将介绍一下利用GAN和PyTorch拟合函数y=sin(x)y=sin(x)y=sin(x)。目录一、GAN结构二、函数代码2.1 生成器Generator2.2 判别器Discriminator2.3 生成真实数据2.4 对数据进行训练三、结果显示四、完整代码一、GAN结构这里进行曲线拟合利用的是普通GAN的结构,即利用全连接层+激活函数,这里同样不过多原创 2021-07-08 16:01:56 · 990 阅读 · 0 评论 -
基于PyTorch的生成对抗网络实战(6)——利用Pytorch搭建WGAN-GP生成手写数字
WGAN-GP (Wasserstein GAN using gradient penalty),即在WGAN的基础上加入gradient penalty梯度惩罚项,可参考论文:《Improved Training of Wasserstein GANs》。原创 2022-06-23 20:52:52 · 1338 阅读 · 0 评论 -
基于PyTorch的生成对抗网络实战(5)——利用Pytorch搭建WGAN生成手写数字
关于WGAN的详细介绍可以参考文章:GAN生成对抗网络入门介绍及DCGAN、WGAN等介绍。这里只介绍一下WGAN在代码方面与GAN或DCGAN的区别。在论文《Wasserstein GAN》中,作者推了一大堆公式定理,最终给出了改进的算法实现流程,而改进后相比原始GAN的算法实现流程却只改了四点:WGAN既可在DCGAN的基础上进行改进,也可在普通GAN的基础上进行改进。这里为简单起见,在普通GAN的基础上改进。而在DCGAN基础上改进的过程与其基本相似。......原创 2022-06-23 19:51:33 · 778 阅读 · 0 评论 -
GAIN的代码实现(3)——基于GAN的Spam数据集缺失数据填补(序)
上文(GAIN的代码实现(2)——基于GAN的Spam数据集缺失数据填补)介绍了利用生成对抗网络进行Spam数据集缺失数据填补,本文将在此基础上,介绍利用生成对抗网络进行Spam数据集缺失数据填补的另一种方法。......原创 2022-06-16 19:11:47 · 1549 阅读 · 1 评论 -
GAIN的代码实现(2)——基于GAN的Spam数据集缺失数据填补
本文介绍基于生成对抗网络的Spambase DataSet数据集缺失数据填补源码实现。“spambase.data”的最后一列表示该电子邮件是否被视为垃圾邮件(1)或非垃圾邮件(0),即未经请求的商业电子邮件。大多数属性表示电子邮件中是否经常出现特定的单词或字符。游程长度属性(55-57)测量连续大写字母序列的长度。...原创 2022-06-02 20:38:07 · 1188 阅读 · 0 评论 -
GAIN的代码实现(1)——基于GAN的MNIST数据集图像缺失数据填补
目录一、环境搭建二、GAIN架构2.1 生成器G2.2 判别器D三、其他结构3.1 掩模向量M3.2 其他函数3.3 参数初始化设置3.4 开始训练四、结果演示五、完整代码本文以MNIST数据集为例,演示利用GAIN对图像缺失数据进行填补的代码实现。一、环境搭建Python环境使用的是Python3.7,Tensorflow1.15.0和PyTorch1.11.0。二、GAIN架构2.1 生成器G首先定义生成器,生成器代码如下:class G(torch.nn.Module): def原创 2022-05-27 17:54:13 · 1527 阅读 · 0 评论 -
GAIN: Missing Data Imputation using Generative Adversarial Nets(基于生成对抗网络的缺失数据填补)论文详解
目录一、背景分析1.1 缺失数据1.2 填补算法二、GAIN2.1 GAIN网络架构2.2 符号描述(Symbol Description)2.3 生成器模型2.4 判别器模型2.5 提示向量Hint三、算法流程四、总结我们一直被缺失的数据包围着。长期以来,统计分析中因数据缺失而产生的问题一直被掩盖着。这些时代现在正在慢慢结束。在过去的几十年中,处理缺失数据的一系列技术已经大大扩展。本专题将介绍利用生成对抗网络进行缺失数据填补,欢迎关注。一、背景分析原始论文链接:GAIN: Missing Data原创 2022-05-26 16:59:57 · 2142 阅读 · 0 评论 -
关于Python、Pytorch、Tensorflow深度学习版本问题踩的一些坑说明(详细版本说明)
最近在用Python进行深度学习,由于电脑经常更换,经常版本的安装,而不同版本又遇到很多问题,因此这里描述一下建议的版本信息。【编辑于2022.05.11】1.Python版本Python版本建议选择Python3.6或Python3.7(建议Python3.6)不要安装Python3.8以上版本,因为血和泪的教训:教训1:python库安装的时候常见问题;教训2:Python3.8运行Visdom.server抛出NotImplementedError异常;教训3:Python3.8以上无原创 2022-05-11 15:55:21 · 3662 阅读 · 1 评论 -
基于PyTorch的生成对抗网络入门(5)——利用PyTorch搭建条件生成对抗网络(CGAN)超详解
目录一、案例描述二、代码详解2.1 构建真实数据集2.2 创建生成虚假数据2.3 构建判别器2.3.1 创建生成虚假标签2.3.2 判别器类2.3.3 测试判别器2.4 构建生成器2.4.1 生成器类2.4.2 测试生成器2.5 训练GAN2.6 测试生成器的生成效果一、案例描述本文介绍利用条件生成对抗网络(CGAN)进行手写数字生成。比如说,要求生成不同的,但是都代表某一个数字的图像。二、代码详解2.1 构建真实数据集加载数据集利用datasets.MNIST()函数,定义加载数据集函数:#定原创 2021-12-03 11:53:31 · 1570 阅读 · 0 评论 -
基于PyTorch的生成对抗网络入门(4)——利用PyTorch搭建深度卷积生成对抗网络(DCGAN)生成彩色图像超详解
本文介绍利用深度卷积生成对抗网络(DCGAN)进行彩色人脸图像生成。本文选取的数据集是CelebA数据集的前20000张图像。原创 2021-12-02 12:04:47 · 1259 阅读 · 0 评论 -
基于PyTorch的生成对抗网络入门(3)——利用PyTorch搭建生成对抗网络(GAN)生成彩色图像超详解
目录一、案例描述二、代码详解2.1 获取数据2.2 数据集类2.3 构建判别器2.4 构建生成器一、案例描述在上文利用GAN进行手写数字生成的基础上,本文介绍利用生成对抗网络进行彩色人脸图像生成。本文选取的数据集是CelebA数据集,其官网地址为:http://mmlab.ie.cuhk.edu.hk/projects/CelebA.html。由于该数据集巨大,有202599张图像,因此我们选择前20000张图像进行训练,这20000张图像可以从下方链接获取:https://download.csdn原创 2021-11-30 14:41:41 · 2648 阅读 · 0 评论 -
基于PyTorch的生成对抗网络入门(2)——利用PyTorch搭建基础生成对抗网络(GAN)超详解
上一篇文章:基于PyTorch的生成对抗网络(一)——利用PyTorch搭建入门生成对抗网络(GAN)超详解 中,通过利用生成对抗网络学习创建符合1010格式规律的值,了解到了GAN的基本框架和PyTorch编程的基本思路。本文将难度上一级台阶...原创 2021-11-29 11:41:32 · 2006 阅读 · 0 评论 -
基于PyTorch的生成对抗网络入门(1)——利用PyTorch搭建入门生成对抗网络(GAN)超详解
目录一、案例描述二、代码详解2.1 构建真是数据集2.2 构建判别器一、案例描述我们首先从一个简单的GAN开始实现,利用生成器学习创建符合1010格式规律的值,这个任务比生成图像更简单。通过这个基础任务,我们可以了解GAN的基本框架和PyTorch编程的基本思路。二、代码详解2.1 构建真是数据集真实数据集是一个一直返回1010格式规律的数据的函数:# 真实数据集def generate_real(): real_data=torch.FloatTensor([1,0,1,0])原创 2021-11-18 18:10:56 · 1373 阅读 · 2 评论 -
以MNIST数据集为例,详解PyTorch搭建神经网络方法步骤(最详细)
目录一、案例描述二、数据集介绍三、构建神经网络类(class)3.1 设计神经网络层3.2 损失函数和权重更新3.3 实现forward()方法3.4 定义train()函数3.5 训练可视化一、案例描述本文以MNIST数据集为例,详解PyTorch搭建神经网络对MNIST数据集进行分类。二、数据集介绍加载数据集利用datasets.MNIST()函数,其用法如下:datasets.MNIST(root, train=True, transform=None, download=False)r原创 2021-11-21 20:03:08 · 1470 阅读 · 0 评论 -
利用PyTorch搭建生成对抗网络的训练步骤
之前的几篇文章介绍了生成对抗网络的数学原理、推导过程、优缺点等等,可能对于你了解生成对抗网络有些许帮助,但是对于大部分人来说,了解生成对抗网络的具体数学推导和数学公式可能用处不大,用处都不如直接了解如何训练生成对抗网络来的直接,因此本文将介绍一下训练生成对抗网络(GAN)的训练步骤。目录1、前言2、步骤一3、步骤二4、步骤三5、训练生成对抗网络的难点6、生成对抗网络的最创新之处关于生成对抗网络的基础知识可以参考这篇文章:https://blog.csdn.net/didi_ya/article/deta原创 2021-11-20 14:37:38 · 1122 阅读 · 0 评论 -
PyTorch重难点(三)——详解PyTorch的自动求导(梯度)机制
目录一、自动求导机制二、实例介绍2.1 案例描述2.2 曲线可视化2.3 梯度计算2.4 查看梯度2.5 完整代码三、方法二一、自动求导机制神经网络通常依赖反向传播求梯度来更新网络参数,求梯度过程通常是一件非常复杂而容易出错的事情。而PyTorch深度学习框架可以帮助我们自动地完成这种求梯度运算。在计算梯度之前,需要首先明确哪个变量需要计算梯度,将需要计算梯度的张量的requires_grad参数设置为True。Pytorch一般通过反向传播 backward 方法 实现这种求梯度计算。该方法求得原创 2021-11-17 20:27:57 · 6184 阅读 · 4 评论 -
PyTorch重难点(二)——利用Dataset和DataLoader构建数据集代码实战
目录一、案例描述二、代码实战2.1 自定义数据和标签2.2 创建Dataset的子类2.3 Dataset子类实例化2.4 对数据集进行拆分2.5 利用DataLoader加载数据集2.6 输出数据集结果上文PyTorch重难点(一)——利用Dataset和DataLoader构建数据集原理介绍中介绍了Dataset和DataLoader的基本原理,本文对案例进行代码实战介绍。一、案例描述原始程序中我首先构建了一个手势识别的数据集,包含手势图像和标签,手势图像是一共有1320个图像,其形状是300*3原创 2021-11-13 17:39:10 · 2158 阅读 · 0 评论 -
PyTorch重难点(一)——利用Dataset和DataLoader构建数据集原理介绍
目录一、基础概念二、创建数据集常用的方法2.1 使用 torch.utils.data.TensorDataset创建数据集2.2 使用torchvision.datasets.ImageFolder创建图片数据集2.3 继承torch.utils.data.Dataset创建自定义数据集二、Dataset的介绍和使用2.1 Dataset的介绍2.2 Dataset的核心接口2.3 Dataset的使用2.3.1 导入Dataset类3.3.2 创建Dataset的子类3.3.3 声明该类四、DataLo原创 2021-11-13 16:35:43 · 2928 阅读 · 0 评论 -
卷积神经网络LeNet-5的pytorch代码实现
在详解卷积神经网络LeNet-5一文中,我详细介绍了一下Lenet-5的原理,下面简要介绍一下Lenet-5的pytorch代码实现。主要内容一、Lenet-5网络模型实现1.1 引入必要的包1.2 搭建卷积层和池化层二、Lenet-5实现MNIST手写数字识别一、Lenet-5网络模型实现1.1 引入必要的包代码如下:import torchfrom torch import nnimport torch.nn.functional as F1.2 搭建卷积层和池化层代码如下:sel原创 2020-08-31 14:17:14 · 16008 阅读 · 17 评论 -
PyTorch实战案例(四)——利用PyTorch实现卷积神经网络LeNet-5
目录一、案例描述二、代码详解2.1 定义模型2.2 检查模型2.3 构建加载数据集函数2.4 数据集可视化2.5 开始训练三、完整代码一、案例描述本文将介绍利用PyTorch实现卷积神经网络LeNet-5,关于卷积神经网络LeNet-5的介绍,可以参考:手写数字识别问题(3)——详解卷积神经网络LeNet-5。二、代码详解2.1 定义模型LeNet-5结构如下:首先,需要定义一下Reshape类,将图像转为(X,1,28,28)的形式,其中X为图像的数量,1* 28* 28为图像格式,1为通道原创 2021-11-12 16:13:40 · 3986 阅读 · 1 评论 -
PyTorch实战案例(三)——利用PyTorch实现多层感知机算法
目录一、案例描述二、代码详解2.1 构建加载数据集函数2.2 实现单隐藏层的多层感知机2.3 开始训练四、完整代码一、案例描述本文将介绍PyTorch的一个基础案例——多层感知机算法。案例为:利用PyTorch设计神经网络拟合对Fashion-MNIST数据集进行分类。二、代码详解2.1 构建加载数据集函数定义加载数据集函数:#定义加载数据集函数def load_data_fashion_mnist(batch_size): '''下载Fashion-MNIST数据集然后加载到内存中原创 2021-11-07 11:39:39 · 3163 阅读 · 0 评论 -
PyTorch实战案例(二)——利用PyTorch实现线性回归算法(进阶)
目录一、案例描述二、代码详解2.1 根据直线方程构造数据集2.2 构建数据迭代器三、完整代码一、案例描述上一篇文章【PyTorch实战案例(一)——利用PyTorch实现线性回归算法(基础)】,介绍了PyTorch实现线性回归的基础算法,使用预定义好的层构建了一个单层神经网络,本文将介绍利用PyTorch实现线性回归的进阶算法,通过构建LinearRegression类实现线性回归。案例为:利用PyTorch设计神经网络拟合直线y=Wx+b,其中W=[2,-3.4]T , b=4.2。该案例有两个特原创 2021-11-11 21:44:25 · 3148 阅读 · 0 评论 -
PyTorch实战案例(一)——利用PyTorch实现线性回归算法(基础)
目录一、案例描述二、代码详解2.1 根据直线方程构造数据集2.2 构建数据迭代器2.3 构建神经网络层并进行初始化2.4 开始训练2.5 输出结果验证三、完整代码一、案例描述学习一门编程语言最快速的途径便是学习案例,然后自己再独立去实现案例,本文将介绍PyTorch的第一个实战案例——线性回归算法。案例为:利用PyTorch设计神经网络拟合直线y=Wx+b,其中W=[2,-3.4]T , b=4.2。该案例有两个特征,分别是W的两个维度,有一个标签,为输出y。二、代码详解2.1 根据直线方原创 2021-11-05 18:24:36 · 3844 阅读 · 0 评论 -
PyTorch疑难杂症(1)——torch.matmul()函数用法总结
目录一、函数介绍二、常见用法2.1 两个一维向量的乘积运算2.2 两个二维矩阵的乘积运算2.3 一个一维向量和一个二维矩阵的乘积运算2.4 一个二维矩阵和一个一维向量的乘积运算2.5 其他一、函数介绍pytorch中两个张量的乘法可以分为两种:两个张量对应元素相乘,在PyTorch中可以通过torch.mul函数(或*运算符)实现;两个张量矩阵相乘,在PyTorch中可以通过torch.matmul函数实现;torch.matmul(input, other) → Tensor计算两个张量i原创 2021-11-05 11:16:09 · 51497 阅读 · 5 评论 -
基于PyTorch的生成对抗网络实战(4)——利用Pytorch搭建LSGAN生成手写数字
目录一、生成器二、判别器三、迭代训练过程四、结果演示五、完整代码LSGAN的架构与DCGAN基本类似,只是改了损失函数,将损失函数从BCEloss改为MSEloss。一、生成器生成器类与DCGAN基本相同,代码如下:class Generator(nn.Module): def __init__(self): super(Generator, self).__init__() self.init_size=img_size//4 # //表示整数除法原创 2021-10-30 14:39:56 · 997 阅读 · 0 评论