![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习:pytorch框架
文章平均质量分 92
BUAA小乔
本科:BIT
硕士:BUAA
传统工科自学编程之路。
展开
-
pytorch深度学习:自编码器Auto-encoder(二)
上一节我们了解了自编码器的基础知识,这一节我们在pytorch上创建一个自编码器用于处理mnist数据集。1.问题的描述关于mnist数据集在这里就不再描述了,相信大家已经很熟悉了。今天使用自编码器有两个目的,即:使用encoder显示压缩的特征数据。使用decoder生成mnist数据集。先对一些超参数进行设置:# 定义一些超参数EPOCH = 10BATCH_SIZE = 64LR = 0.005DOWNLOAD_MNIST = True # 下过数据的话, 就可以设置成 F原创 2020-12-12 10:36:16 · 1032 阅读 · 1 评论 -
pytorch深度学习:自编码器Auto-encoder(一)
这一节,我们来了解下什么是自编码器(AE)。1.自编码器介绍作为一种无监督或者自监督算法,自编码器本质上是一种数据压缩算法。我们可以类比下电脑上的压缩包,自编码器本质和压缩包类似,也是将数据进行压缩再解压的过程。我们用一张图片来解释下AE的本质:白色数据X经过一个神经网络压缩为一个code,code再经过一个神经网络解压后形成黑色数据X,然后通过对比黑白 X ,求出预测误差, 进行反向传递, 逐步提升自编码的准确性。 训练好的自编码中间code这一部分就是能总结出原数据的精髓。2.自编码器结构原创 2020-12-10 18:09:37 · 1572 阅读 · 2 评论 -
pytorch深度学习:RNN循环神经网络(二)
上一节了解到了RNN和LSTM的基础知识,这节我们使用LSTM网络对mnist手写数字数据集进行处理。重点了解LSTM网络的搭建方法以及各个参数所代表的含义。1.问题的提出我们知道RNN一般是用来处理具有时间序列的数据,但是mnist数据集是图像数据,怎么进行处理呢?这里我们将mnist手写字数据的每行当作不同时间点的数据,也就是一张图片是由28个时间序列数据组成,即Time_step=28,每个时间序列数据包含28个像素点,也就是Input_size=28。第一步,我们来创建一些超参数:# 定义一些原创 2020-12-09 11:04:38 · 538 阅读 · 0 评论 -
pytorch深度学习:RNN循环神经网络(一)
如果说CNN是神经网络在图像处理中应用最多的方法,那么RNN就是用在自然语言处理领域用得最多的方法。接下来的几节就用来学习下RNN的知识,以及怎么用pytorch来搭建一个RNN网络。博客中的图片来自李宏毅老师的课程,课程中对于LSTM的讲解真的非常清晰,可以多观看几遍。同时也有篇很好的博客可以参考:博客。1.RNN的介绍RNN也叫循环神经网络,全称为Recurrent Neural Network,它是一种对序列型数据进行处理的深度模型。它的原理框架如下图展示的一样:它通过记忆单元(Memory原创 2020-12-06 21:05:55 · 461 阅读 · 0 评论 -
pytorch深度学习:CNN卷积神经网络(三)
上两节博客,分别学习了卷积神经网络的基础知识和处理手写字数据集,具体的可以看前边两篇博客:CNN基础知识CNN处理mnist数据集mnist只是单一高度(channel)的数据集,使用卷积处理时的卷积核是二维平面形状,而实际情况下我们要处理的往往是彩色图像,因此是有高度(channel)值的,这时卷积核更像是一个立方体的样子,看下面的图就很好理解了。1.问题的提出这节课我们用另一个著名的数据集CIFAR-10来做彩色图片分类,CIFAR-10是一个常用的彩色图片数据集,它有10个类别airpla原创 2020-12-06 10:11:52 · 677 阅读 · 0 评论 -
pytorch深度学习:CNN卷积神经网络(二)
在学习完卷积神经网络后,我们用CNN来处理下mnist手写字数据集,以此来学习CNN的搭建方法。1.知识回顾1.1 mnist手写字数据集手写字数据集mnist的每个样本是一个28×28的矩阵,每个点表示该点的灰度值。在用全连接网络做识别时,我们要将每个样本展开成784(28×28)的一维向量,作为输入层输入全连接网络。而用CNN的时候,就不需要再展开了,而是直接以矩阵的形式进行处理。1.2 卷积神经网络的结构卷积神经网络由卷积层、池化层、全连接层构成,因此我们要对每层都进行创建。2. CNN网原创 2020-12-05 21:02:46 · 813 阅读 · 0 评论 -
pytorch深度学习:CNN卷积神经网络(一)
卷积神经网络(CNN)是在图像、视频识别处理领域应用最多的深度学习方法。这次就来学习下卷积神经网络的基础知识。这里只简单介绍下卷积神经网络的入门知识,想再深入学习可以看下吴恩达、李宏毅老师的CNN课程。1.卷积神经网络的介绍如果我们采用传统神经网络来处理图像,由于图像分别率很高的原因导致输入数据的维度特别高,所以神经网络中的参数数量会太大。针对这个问题,CNN就被提出了。在卷积神经网络中,第一个卷积层会直接接受图像像素级的输入,每一层卷积都会提取数据中最有效的特征。我们以人眼识别物体来类比卷积层,人眼原创 2020-12-05 17:00:14 · 1290 阅读 · 0 评论 -
pytorch深度学习:手写数字识别(实战项目一)
经过前边基础知识的铺垫,已经足够完成深度学习中的"hello world"项目:手写数字识别。这节课就是利用pytorch完成这个实战任务,它的本质上是个10分类问题。1.MNIST数据集mnist手写字数据集是机器学习领域经典的数据集,这里就不详细介绍了。它的每个样本都是(28,28)的矩阵构成,每个数据点代表这个点的灰度值,标签则是0-9这十个数字。数据集又分为训练集和测试集,训练集由60000个样本组成,测试集由10000个样本组成。我们使用批数据处理将数据打包为训练集和测试集,Batch_si原创 2020-12-05 11:27:00 · 6116 阅读 · 4 评论 -
pytorch深度学习:批数据处理
实际应用时的训练数据往往都太大了,一次加载到电脑里可能内存不够,其次运行速度也很慢。那自然就想到,不如把训练数据分割成好几份,一次学习一份,这也就是神经网络中常用到的批数据处理。1. 问题的提出举一个简单的例子,我们假设要训练的数据和标签为x,y,共有10个样本,批数据处理就是将这些样本分成小块来喂给网络进行训练。生成x,y数据:x = torch.linspace(1, 10, 10) # x data (torch tensor)y = torch.linspace(10, 1, 1原创 2020-12-04 17:18:11 · 2440 阅读 · 0 评论 -
pytorch深度学习:模型的保存和提取
在学习完搭建神经网络模型后,有时需要对模型进行保存和提取,这节课就是讲述如何在pytorch中实现。1. 问题的提出我们使用回归这节课建立的神经网络来作为要保存的模型,具体的模型建立过程可以参考我这篇博客。它是对一元二次方程进行拟合的模型 (net1)。2. 模型的保存神经网络模型的保存有两种方法:保存整个网络模型。只保存网络模型的参数(速度快,占用内存少)。# 1.保存整个模型torch.save(net1,'net.pkl')# 2.只保存模型参数torch.save(net1.原创 2020-12-02 16:15:31 · 3123 阅读 · 0 评论 -
pytorch深度学习:神经网络实现数据分类(分类问题)
这一节,用pytorch实现神经网络分类问题,再次熟悉pytorch搭建神经网络的步骤。1. 问题的提出分类问题是将数据划分种类的一种问题,常见的有二分类和多分类问题,这节就是做一个简单的二分类问题。同样,我们先做一组数据。其中第一组数据的标签为0,第二组数据标签为1。# x0,x1是数据,y0,y1是标签n_data = torch.ones(100, 2) # 数据的基本形态x0 = torch.normal(2*n_data, 1) # 类型0 x data (t原创 2020-12-02 14:49:21 · 40634 阅读 · 8 评论 -
pytorch深度学习:神经网络拟合方程(回归问题)
神经网络入门的应用就是拟合方程,这篇文章就针对这个问题来熟悉pytorch怎么搭建神经网络模型。1. 问题提出我们要拟合的是y = x^2这个最简单的一元二次方程,首先要创建我们的x,y数据,它们都是100*1维的数据,对y加了一个噪声,让它具有一些离散性。# 建立数据:拟合y = x^2曲线x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1) # x data (tensor), shape=(100, 1)y = x.pow(2) +原创 2020-12-02 11:14:07 · 11621 阅读 · 0 评论 -
pytorch深度学习:pytorch基础操作
今天开始入坑深度学习,首先学习难度较低的pytorch框架。这一篇文章就是简单学习下pytorch的基本操作。1. pytorch数据类型pytorch中的数据类型为tensor,它的基本操作和numpy都挺相似的。要注意的有两个地方,要查看数据的形状不再是shape(),而是view();改变形状不再是reshape(),而是view()。import torchimport numpy as npa = torch.zeros(5,3,dtype=torch.long) # 创建全0矩阵原创 2020-12-02 09:55:09 · 360 阅读 · 0 评论