![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PyTorch深度学习
文章平均质量分 75
山外小楼听夜雨.
每天敲点代码..
展开
-
Pytorch深度学习——循环神经网络基础 (07)
就是通常所说的分词,分出的每一个词语我们称之为token。常用的分词工具有很多:jieba分词: https://github.com/fxsjy/jieba分词方法:1.转换为单个字2.转换为单词例如:我爱深度学习(1) 我,爱,深度学习(2)我, 爱,深,度,学,习。原创 2022-11-08 15:37:51 · 814 阅读 · 0 评论 -
孪生神经网络的学习进度记录
不要被名字误导,孪生和双胞胎没什么关系…简单来说,孪生神经网络(Siamese network)就是“连体的神经网络”,神经网络的“连体”是通过共享权值来实现的,如下图所示。(突然想到CNN 的特点也是权值共享…)权值共享:当神经网络有两个输入的时候,这两个输入使用的神经网络的权值是共享的(可以理解为使用了同一个神经网络)如果使用两个神经网络分别对图片进行特征提取,提取到的特征很有可能不在一个域中,此时我们可以考虑使用一个神经网络进行特征提取再进行比较。原创 2022-10-05 20:04:24 · 1146 阅读 · 0 评论 -
安装torch1.2.0 和 torchvision0.4.1(0.4.0没有成功..)
新建了一个虚拟环境,里面啥也没有。现在的pip list。原创 2022-10-04 20:47:39 · 1699 阅读 · 0 评论 -
Pytorch深度学习——实现手写数字识别 06
由05课已经知道,调用MNIST返回的结果中 图形数据是一个Image对象,需要对其进行处理。可以直接实例化,传入img 就可以自动生成 [C, H, W] 格式的数据了。是 torch.tensor 的属性,注意不要用到 np.array 上。【注意】 tensorflow是静态的,torch是动态的,所以可以写。[H, W, C]转换最后的结果应该是[C, H, W] 的。(1)mean: 均值指的是每个通道的均值。(2)std:方差指的是每个通道的方差。为了进行数据的处理,学习。原创 2022-10-02 16:48:08 · 745 阅读 · 0 评论 -
Pytorch深度学习——优化算法、数据集类、数据加载器 05
总结:在自定义的数据集类中,继承Dataset类,同时需要实现两个方法__len__: 能够实现通过全局的len() 方法获取其中的元素个数;: 能够通过传入索引的方式获取数据,例如通过dataset[i]获取其中的第i条数据。6万个训练,1万个测试,都是黑白图像,像素是28*28可以看出,返回值是(图片,目标值)原创 2022-09-25 20:37:45 · 776 阅读 · 0 评论 -
Pytorch深度学习——线性回归实现 04(未完)
在GPU上执行程序:(1)自定义的参数和数据,需要转化为cuda支持的tensor(2)model需要转化为cuda支持的model(3)执行的结果需要和cpu的tensor进行计算的时候:a. tensor.cpu() 把cuda的tensor转化为CPU的tensor。原创 2022-09-17 13:47:55 · 431 阅读 · 0 评论 -
Pytorch学习——梯度下降和反向传播 03 未完
相当于把原来的tensor数据“抽离”出来,并部影响原来的tensor,然后进行深拷贝,转化为numpy数据。对于Pytorch中的一个tensor,如果设置它的属性,绘制成计算图之后,可以清楚的看到前向计算的过程。反向传播就是一个从右到左的过程,自变量。在输入是一个标量的情况下,可以调用输出。方法,但是在输出是一个向量的时候,调用。,那么会追踪对于该张量的所有操作。表示不需要追中这一块的计算。方法来进行反向传播,计算梯度。各自的骗到就是连线上梯度的乘积。属性,用来记录做过的操作;,此时能方便求出导数。原创 2022-09-13 10:34:40 · 445 阅读 · 0 评论 -
【基于PyTorch】torch.unsqueeze() 使用
输入:import torchx = torch.tensor([1, 2, 3, 4])print(torch.unsqueeze(x, 0))print("**************")print(torch.unsqueeze(x, 1))输出:tensor([[1, 2, 3, 4]])**************tensor([[1], [2], [3], [4]])原创 2022-05-09 16:04:10 · 231 阅读 · 0 评论 -
【基于PyTorch】nn.Dropout() 使用
这里p=0.2 表示,每个神经元都有0.2 的概率被丢弃(变成0)m = nn.Dropout(p=0.2)代码:from torch import nnimport torchm = nn.Dropout(p=0.2)input1 = torch.randn(4, 5)output = m(input1)print(output)输出1:tensor([[-0.6151, -0.0000, -1.0482, -0.5827, 2.8544], [ 0.原创 2022-05-09 16:15:18 · 2719 阅读 · 0 评论 -
nn.Module类的讲解
文章目录原创 2022-04-22 20:21:07 · 1189 阅读 · 0 评论 -
SeNet || 注意力机制——源代码+注释
文章目录1 SeNet介绍2 SeNet优点3 Se模块的具体介绍4 完整代码1 SeNet介绍SENet是Squeeze-and-Excitation Networks的简称,由Momenta公司所作并发于2017CVPR,论文中的SENet赢得了ImageNet最后一届(ImageNet 2017)的图像识别冠军SENet主要是学习了channel之间的相关性,筛选出了针对通道的注意力,稍微增加了一点计算量,但是效果比较好。通过学习的方式来自动获取到每个特征通道的重要程度,然后依照这个重要程度原创 2022-04-21 20:30:02 · 4583 阅读 · 0 评论 -
神经网络 || 注意力机制的Pytorch代码实现
文章目录1 注意力机制的诞生2 介绍SeNet模型及Pytorch代码实现1 注意力机制的诞生注意力机制,起初是作为自然语言处理中的工作为大家熟知,文章Attention is all you need详细介绍了“什么是注意力机制”,有兴趣的小伙伴可以下载原文看看。SeNet-Squeeze-and-Excitation Networks是注意力机制在计算机视觉中应用的早期工作之一,并获得了2017年的imagenet,也就是最后一届imagenet比赛的冠军。2 介绍SeNet模型及Pyt原创 2022-04-21 20:20:32 · 1158 阅读 · 0 评论 -
Pytorch框架 || torch.nn.modules.Module(nn.Module)
文章目录1 一个简单的网络2 nn.Module.init_weight()2.1 kaiming 高斯初始化1 一个简单的网络一个Pytorch模型应该以类的形式出现Pytorch训练模型应该是nn.Module的子类一个训练模型最少包含init和forward(初始化和前向传播)两个过程。import torch.nn as nnimport torch.nn.functional as Fclass Model(nn.Module): def __init__(self)原创 2022-04-21 20:01:36 · 902 阅读 · 0 评论 -
Pytorch中的nn.AdaptiveAvgPool2d(output_size)简单介绍
文章目录1 什么是池化?(Pooling)2 adaptivePooling和GeneralPooling3 代码调用1 什么是池化?(Pooling)Pooling,池化层,又称下采样、汇聚层,是从样本中再选样本的过程。是为了缩减数据维度的操作。Pooling主要分两类:①最大池化(Max pooling)②均值池化(Avg pooling)前者是取size×size中最大值。后者是采用平均值。2 adaptivePooling和GeneralPoolingAdaptivePoolin原创 2022-04-21 15:22:02 · 2364 阅读 · 0 评论 -
Sequential模型
文章目录1 Keras模型1.1 序贯模型1.2 函数式模型2 在pytorch中Sequential()的使用2.1 按照常规方法来构建网络2.2 使用Sequential()构建网络1 Keras模型Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model)。Model更广泛,Sequential是Model的一种特殊情况。1.1 序贯模型单输入输出,一条路到底。层与层之间只有香菱关系,没有跨层连接。特点:编译速度快,操作简单1.2 函数式模型多输入原创 2022-04-08 20:34:48 · 1637 阅读 · 0 评论 -
Matplotlib绘图:简单、直接上手
文章目录1 plt.plot() 函数1 plt.plot() 函数函数声明 plt.plot(x, y, format_string, **kwargs)参数介绍x:X轴数据,列表或者数组(可选)y:Y轴数据,列表或者数组format_string:控制曲线的格式字符串(可选)**kwargs:第二组或者更多(x,y,format_string), 可画多条曲线format_string介绍>>>颜色:'b' 蓝色'c' 青绿'g' 绿色'k'原创 2022-04-08 15:32:44 · 3619 阅读 · 0 评论 -
TypeError: fit_transform() missing 1 required positional argument: ‘X‘——报错
文章目录原创 2022-04-06 18:02:56 · 6554 阅读 · 3 评论 -
pandas之DataFrame学习
文章目录1 写在前面的小知识点2 read_csv() 函数参数篇1 写在前面的小知识点series是一维的,而dataframe是二维的!DataFrame对象既有行索引,又有列索引行索引,是不同行的索引,index,0轴,axis=0列索引,是不同列的索引,columns,1轴,axis=12 read_csv() 函数参数篇panda.read_csv的功能:读取csv文本文件到DataFrame变量中。pandas.read_csv(filepath_or_buffer,原创 2022-04-03 16:40:25 · 1805 阅读 · 0 评论 -
循环神经网络RNN与LSTM学习(一)
文章目录1 word2vec1.1 理解torch.nn.Embedding2 RNN 的梯度计算2.1 什么是梯度爆炸2.2 什么是梯度消失3 LSTM4 常见的面试题——LSTM是如何解决RNN梯度消失和梯度爆炸问题?1 word2vec1.1 理解torch.nn.Embedding全部参数如下:torch.nn.Embedding(num_embeddings: int, embedding_dim: int, padding_idx: Optional[int] = None,原创 2022-04-02 14:53:14 · 504 阅读 · 0 评论 -
PyTorch——device与cuda.device用法
文章目录1 查看当前的device2 cpu设备可以使用“cpu:0”来指定3 gpu设备可以使用“cuda:0”来指定4 查询CPU和GPU设备数量5 从CPU设备上转换到GPU设备5.1 torch.Tensor方法默认使用CPU设备5.2 使用to方法将cpu的Tensor转换到GPU设备上1 查看当前的device输入情况:import torchprint("Default Device : {}".format(torch.Tensor([4, 5, 6]).device))输原创 2022-04-02 14:29:05 · 19370 阅读 · 0 评论 -
PyTorch深度学习实践(十二)——序列转序列模型
文章目录0 写在前面1 RNN 简单描述2 RNN 的数学表达3 设计输入输出的size4 RNNcell 与 RNN5 举例——hello转换为0 写在前面之前的卷积神经网络受到了生物视觉细胞的启发,相似的,循环神经网络受到了生物记忆能力的启发。1 RNN 简单描述普通神经网络和循环神经网络普通神经网络:输入层 xxx 经过隐含层之后输出 yyy循环神经网络:输入层 xxx 经过隐含层之后输出的数据 hhh 还要作为下一次输入的部分,循环传递2 RNN 的数学表达首先初始原创 2022-03-31 20:21:48 · 1934 阅读 · 1 评论 -
PyTorch深度学习实践(十一)——迁移学习
文章目录0 写在前面1 AlexNet 详解1.1 浅析一下卷积层1.1 dropoutResNet 详解1.1 dropout0 写在前面本研究生终于学完了基础部分的神经网络!!!现在来到《PyTorch深度学习实践》第四章——迁移学习,站在巨人的肩膀上学习!1 AlexNet 详解这个图画的不错,以后写论文的时候可以仿照画一下!该模型总共有5个卷积层,3个全连接层。1.1 浅析一下卷积层第一层——卷积和池化操作码字不易,多多点赞收藏+关注,真的是码字路上最大的动力了!>原创 2022-03-28 16:29:59 · 2338 阅读 · 0 评论 -
PyTorch深度学习实践(十)——卷积模型定义分析
文章目录0 写在前面1 卷积层2 forward过程0 写在前面本篇blog接续前篇blog,可以结合上一篇blog一起学习哦!’本blog介绍一个卷积神经网络,用于识别手写数字问题!1 卷积层初始化:init() def __init__(self): super(Net, self).__init__() self.conv1 = torch.nn.Conv2d(1,10,(5,5)) self.conv2 = torc原创 2022-03-28 14:16:38 · 1229 阅读 · 0 评论 -
PyTorch深度学习实践(九)——卷积神经网络入门
文章目录0 写在前面0 写在前面full yconnected 全连接层:如果这个网络是用线性层串联起来的原创 2022-03-27 15:55:59 · 1621 阅读 · 0 评论 -
PyTorch深度学习入门 || 系列(六)——多元分类
文章目录0 写在前面1 softmax函数2 数据预处理2.1 scatter()函数的cmap属性3 激活函数4 模型搭建5 完整代码6 输出分析6.1 目标6.2 运行过程7 总结0 写在前面二分类问题是多分类问题的一种特殊情况,区别在于多分类用softmax代替sigmoid函数。softmax函数将所有分类的分数值转化为概率,且各概率的和为1。1 softmax函数softmax函数首先对所有的输出值通过指数函数,将实数输出映射到正无穷然后将所有的结果相加作为分母2 数据预处原创 2022-03-27 11:03:47 · 1634 阅读 · 2 评论 -
PyTorch深度学习入门 || 系列(五)——逻辑回归
文章目录0 写在前面1 sigmoid函数2 逻辑回归示例0 写在前面线性回归和非线性回归,它们的输出都是连续的。而逻辑回归的输出是二元离散,为了方便数字表达和计算,我们把这两种分类的结果分别记作0和1.1 sigmoid函数sigmoid函数的定义域为R,但是值域在(0, 1)。2 逻辑回归示例import torchimport matplotlib.pyplot as pltcluster = torch.ones(500, 2) # 500行 2列data0 = t原创 2022-03-24 20:31:45 · 1115 阅读 · 0 评论 -
PyTorch深度学习入门 || 系列(四)——非线性回归
文章目录0 写在前面1 激活函数2 人工神经网络3 数据处理4 定义模型5 完整代码0 写在前面这个系列之前学习是线性回归,但是生活中需要解决问题大多数都是非线性的。本文要讨论的重点就是非线性的问题!1 激活函数目的:激活函数实际上是一个非常简单的非线性函数,它作用在线性层的输出,只要让多个带有激活函数的神经元组合在一起,就具有拟合复杂非线性函数的强大能力!常用的激活函数有:sigmoid、tanh、ReLU、Maxout等!这里采用的是ReLU函数 torch.nn.原创 2022-03-23 13:42:09 · 4075 阅读 · 0 评论 -
PyTorch深度学习入门 || 系列(三)——人工神经元
文章目录0 写在前面1 数据处理2 模型定义2.1 完整的模型定义3 设置Loss函数4 优化——梯度下降和随机梯度下降5 完整代码0 写在前面这一篇文章介绍人工神经元、人工神经网络。1 数据处理用linspace()函数产生[-3,3)区间内的100 000个点,并使用unsqueeze()函数在第一维处增加一个维度!展示一下unsqueeze()函数的前后对比:2 模型定义定义一个线性模型LR,它继承PyTorch中的nn.Module,nn就是Neural Network的缩写。原创 2022-03-23 10:04:45 · 2000 阅读 · 0 评论 -
PyTorch深度学习入门 || 系列(二)
文章目录0 写在前面1 随机生成大规模数据2 使用cuda加速3 定义draw()函数4 定义train()函数5 主函数模块内容6 完整代码0 写在前面考虑到之前用于训练的数据都是小样本的,比如说PyTorch深度学习入门 || 系列(一)中的输入就只有五组数据,然后我们将这五个数据作为一次输入,全部喂给模型。这种方法是快速的。但是本文主要围绕使用大规模数据进行线性回归实验!如果您觉得本篇文章对您有帮助的话,感谢点赞+收藏+关注我噢!1 随机生成大规模数据首先使用linspace()函数原创 2022-03-22 20:58:49 · 338 阅读 · 0 评论 -
PyTorch深度学习入门 || 系列(一)
文章目录0 写在前面1 准备pytorch2 Tensor基础知识2.1 如何创建和操作Tensor2.1.1 基本创建方法:torch.Tensor()2.1.2 快速创建方法:torch.zeros()2.1.3 快速创建方法:torch.eyes()2.1.4 快速创建方法:torch.ones()2.1.5 快速创建方法:torch.rand()2.1.6 快速创建方法:torch.arange()2.1.7 快速创建方法:torch.randn()2.2 Autograd的基本原理0 写在前面原创 2022-03-21 10:55:16 · 1286 阅读 · 0 评论 -
PyTorch深度学习实践(九)
文章目录0 写在前面1 完整代码2 处理数据部分2.1 batch enumerate epoch2.2 transforms.Compose()函数2.3 dataset和dataloader3 搭建模型部分4 loss和优化部分5 训练数据部分0 写在前面这篇博文主要针对一个深度学习代码进行学习,提高读代码的能力!学完这篇你就会发现,原来深度学习还可以很简单!如果想要进行深入学习的话,可以看这一篇博文https://blog.csdn.net/weixin_42521185/article原创 2022-03-19 09:53:52 · 259 阅读 · 0 评论 -
PyTorch深度学习实践(八)
文章目录0 写在前面1 解决输出问题1.1 输出属于每一个类别的可能性?0 写在前面这一章主要是解决多分类的问题,sofxmax。1 解决输出问题之前我们学习过糖尿病的二分类问题,现在我们要学习的是手写数据集MNIST,十分类的问题。那么这里的输出就从[0,1]一直到了[0,1,2,3,4,5,6,7,8,9]。1.1 输出属于每一个类别的可能性?二分类问题——1个输出结果就够了十分类问题——9个输出结果就够了但是我们希望将来输出的结果都是正的,和为1。能够满足正态分布。我们需要让输出满原创 2022-03-18 08:15:19 · 1515 阅读 · 0 评论 -
PyTorch深度学习实践(七)
文章目录0 写在前面1 Dataset、DataLoader学习1.1 Dataset作用?1.2 DataLoader作用?2 完整代码0 写在前面这次学习的是数据集获取,Dataset和DataLoader>>>首先介绍一些术语:Data size:就是所有的训练数据(但是数据量比较大不能一次喂给模型)Batch:也就是mini-batch,就是把Data size分批次的喂给模型Iteration:当一个batch的数据都训练一次就称为一个IterationEpo原创 2022-03-17 10:26:19 · 1169 阅读 · 0 评论 -
PyTorch深度学习实践(六)
文章目录0 写在前面1 多维输入的logistic回归2 Diabetes 糖尿病数据集3 构造模型4 计算损失和优化5 激活函数6 代码0 写在前面之前学习的x,y都是很简单的矩阵,现在我们需要考虑多维输入情况!矩阵是一个空间变换的函数!用多个线性变换层,最终模拟一个非线性空间变换的函数。linear()函数可以做到空间变换!Linear()是线性的,但是每一次线性层之后加一个σ\sigmaσ,使得线性变化中可以有非线性的变化,最终得到我们想要的非线性变换函数!一般来说,隐层越多,参数越多原创 2022-03-16 10:32:40 · 1118 阅读 · 0 评论 -
PyTorch深度学习实践(五)
文章目录1 分类问题1.1 MNIST数据集1.2 The CIFAR-10 数据集2 Sigmoid函数3 在线性模型中加入logis函数4 BCE损失函数5 logist回归和线性模型比较6 BCE的loss函数计算7 代码7.1 np.linspace()函数7.2 网格线设置写在前面:线性模型已经学的差不多啦,现在开始学习逻辑回归问题!1 分类问题比如说对于一个十分类的问题,我们并不是要让最后的预测值等于1-10,而是对应每个分类得到概率,概率最大的就是我们最终的预测结果。1.1 MNIST原创 2022-03-15 15:05:56 · 1088 阅读 · 0 评论 -
PyTorch深度学习实践(四)
文章目录1 pytorch的功能写在前面:学习用pytorch的工具,来重现之前学习的线性模型!1 pytorch的功能原创 2022-03-15 13:31:47 · 1104 阅读 · 0 评论 -
PyTorch深度学习实践(三)
文章目录1 梯度下降引入2 计算图3 链式求导写在前面:之前学习的都是简单的预测问题,涉及的函数是一维线性函数,在本节内容中,要开始介绍稍微复杂一点的神经网络了,参数w不再是1个,而是很多个!1 梯度下降引入在第一列的五个圆圈和六个圆圈之间,我们可以看到有30条线。第一列的五个圆圈表示51的输入x,第二列表示第一层的61输出,那么中间很显然是一个6*5的权重矩阵。也就是说,这里一共有30个参数。是否能做这样一个算法,将整个网络看成一个计算图,可以在计算图上传播梯度,最后根据链式法则把梯原创 2022-03-12 10:52:21 · 2518 阅读 · 1 评论 -
深度学习:向量与矩阵篇(1)
文章目录1 1维张量:向量1.1 快速生成向量的方法2 2维张量:矩阵2.1 生成全零矩阵:zeros2.2 生成全1的矩阵:ones2.3 根据其他矩阵的行列值,生成新的全零全1 的矩阵 ones_like zeros_like2.4 生成对角线1 的单位矩阵:eye函数2.5 矩阵的转置,tensorflow用的是transpose2.6 改变张量的形状:view写在前面:学习深度学习的基本知识:向量与矩阵。1 1维张量:向量1.1 快速生成向量的方法linspace函数,(起点float,原创 2022-03-05 20:49:38 · 616 阅读 · 0 评论 -
PyTorch深度学习实践(二)
文章目录1 线性模型计算loss代码分析引入梯度下降问题写在前面:学习pytorch的第二天,今天继续加深loss函数和w参数之间的关系,利用matplot画图表示。可以画出二维图像,也就是参数只有一个的情况。1 线性模型计算loss代码分析import numpy as npimport matplotlib.pyplot as pltx_data = [1.0, 2.0, 3.0]y_data = [2.0, 4.0, 6.0]def forward(x): return x原创 2022-03-04 16:09:05 · 828 阅读 · 0 评论 -
PyTorch深度学习实践(一)
文章目录一、线性模型二、w参数设置三、损失函数写在前面:同门拉我进pytorch的坑,好在机器学习的原理是差不多的,那就直接从tensoflow转到pytorch吧!假设问题:x代表学习时间,y代表得分。目前有三组数据,我们期望从这三组数据中,找到x与y之间的关系,并且能够计算出当x=4时,y的值。一、线性模型x是数据值,y是标签值如果使用线性模型来预测的话,就是y = wx【这里w表示的是一个参数,而且省去了一个b的偏置,使得整个线性模型比较简单】二、w参数设置w的初始值是随机设置的,原创 2022-02-27 10:30:13 · 780 阅读 · 0 评论