PyTorch图像分类教程
深入浅出、全面系统的介绍PyTorch实现图像分类的关键技术,主要包括图像分类常用数据集、图像分类基本流程、全连接神经网络、卷积神经网络、多尺度卷积、跳连卷积、自定义数据集实现图像分类、智能算法发现网络等内容。本专栏除了介绍实现图像分类的常见网络外,还结合高水平科研重点介绍智能算法自动发现网络结构。
算法与编程之美
CSDN官方认证“博客专家”,51CTO官方认证“专家博客”,腾讯云+社区“人气作者”优秀技术专栏,阿里云开发者社区乘风者计划专家博主,微信算法类排名前十、加V认证公众号,全网累计阅读量突破500万人次,累计帮助1000位以上编程爱好者解决难题。
展开
-
【PyTorch图像分类教程】专栏目录(持续更新中,强烈建议收藏)
本文是《PyTorch图像分类教程》的专栏目录,从这里可以了解该专栏的所有分类文章,强烈建议收藏,方便后续阅读。原创 2022-12-12 12:13:45 · 421 阅读 · 0 评论 -
【PyTorch】输出网络中间层结果
PyTorch实现输出网络中间层结果。原创 2023-01-13 20:24:27 · 1200 阅读 · 0 评论 -
提高VGG网络模型的效率
1 问题课上设计的VGG网络存在效率低,准确率低的情况,能否通过优化其结构参数使得该模型的运行效率和准确率在小量数据集上更高。2 方法初始值下的运行精度(lr = 0.1, batchsize = 32):调整学习率后的运行精度(lr = 0.01, batchsize = 32):调整batchsize后的运行精度(lr = 0.01, batchsize = 24):3 结语最终结果证明,在V...原创 2023-01-08 00:00:21 · 504 阅读 · 0 评论 -
【PyTorch】快速搭建多个具有相同卷积核尺寸不同卷积核数量的卷积层
本文介绍了一种高效的方法快速搭建多层卷积网络。原创 2023-01-11 20:42:40 · 540 阅读 · 0 评论 -
【PyTorch】获取Tensor大小,size与shape的区别
Tensor是PyTorch的重要概念之一,获取Tensor的大小的方法主要有两种,其一是size,其二是shape,那么两种方法的区别是什么呢?原创 2022-08-20 14:20:00 · 6697 阅读 · 0 评论 -
【PyTorch】提高mnist模型精确度
1、问题在学习深度学习这门课程中,各种模型指标有一个叫精确度,精确度的意思就是说在模型完成后,测试集的结果与真实值之间的占比程度。那么我们应该如何提高整个模型的精确度呢?我们都知道深度学习模型的建立在经过一些简单的配置,默认的参数,模型在一次训练只有较低的准确率,往往在多次训练后最高也不到85%。所以我们需要一些方式来提高精确度。2、方法通过学习和网上查找资料,我总结出了以下几个提高准确度的技巧:...原创 2022-10-22 00:00:53 · 791 阅读 · 0 评论 -
【PyTorch】MNIST数据集图像可视化方法
1 问题怎么将MNIST数据集里的数字图像数据可视化?2 方法基于pytorch框架,torchvision.datasets.MNIST导入数据集,对图片数据进行预处理以及使用matplotlib可视化。步骤:import 文件from torchvision import datasetsimport matplotlib.pyplot as pltimport osimport numpy ...原创 2022-09-25 00:00:07 · 1822 阅读 · 0 评论 -
电脑拥有GPU却仍返回False
1 问题电脑拥有独立显卡,pycharm中torch.cuda.is_available()总是返回false。2 方法首先在cmd当中输入NVIDIA-smi查看当前CUDA的版本,再到torch官网下载对用的torch版本。3结语针对CUDA版本低于11.3,没有相应的下载指令,下载其他版本的Pytorch依旧返回False,则应当对GPU的CUDA的版本进行升级。到NVIDIA GeFor...原创 2022-12-22 00:00:47 · 1483 阅读 · 0 评论 -
下载安装PyTorch
1、下载并安装Visual Studio Code选择合适版本安装2、下载安装conda并配置环境下载方式一:官网下载下载方式二:清华镜像安装3、conda配置环境打开电脑高级系统配置点开系统环境变量:找到path然后点击Edit或者直接双击:之后可以简单通过cmd输入conda命令检查下安装配置是否成功:创建pytorch环境不同的项目需要不同的虚拟环境,可以处理不同版本的项目之间不兼容问题,进...原创 2022-12-20 00:00:10 · 1456 阅读 · 0 评论 -
PSO算法求解y = x^2的最小值
1 问题Pso思想求解y = x^2的最小值。2 方法先了解粒子群思想的基本原理在迭代之前需要先画出y = x^2的平面图并确定其迭代的范围完成粒子群迭代的必要代码,如适应度计算、速度更新、粒子位置更新和其主要运算过程代码import numpy as npimport matplotlib.pyplot as pltimport matplotlib as mplX = np.arange(-5...原创 2022-12-24 00:00:22 · 415 阅读 · 0 评论 -
Conda安装不上pytorch以及电脑有CUDA测试结果却为FALSE
1 问题Conda环境中安装pytorch显示一直在搜索中,电脑有独立显卡测试结果为False2 方法之后在pycharm终端下载pytorch,安装成功电脑又独立显卡测试结果为False,我重新在pytorch官网查看了我下载的版本,发现使用下载成没有独立显卡的版本,于是我删除后重新下载,测试运行结果为True3 结语针对conda环境中搜索不到pytorch问题,提出在pycharm终端下载方...原创 2022-12-19 00:00:16 · 952 阅读 · 0 评论 -
如何安装PyTorch
1 什么是Pytorchpytorch是一个基于Python的科学计算包,其类似于Numpy但是能利用GPU加速,也是一个非常灵活和快速用于深度学习的研究平台。2 安装Pytorch检查自己的电脑是否有NVIDIA独立显卡从硬件层面上说,NVIDIA从Geforce9XXX系列显卡,也就是G92/G94/G96核心开始支持CUDA技术。但NVIDIA通过在驱动层面上的优化,让从Geforce8XX...原创 2022-12-14 00:00:11 · 468 阅读 · 0 评论 -
Pytorch评估真实值与预测值之间的差距
问题全连接神经网络算法是一种典型的有监督的分类算法,通过算法所分类出来的预测值与真实值之间必定存在着差距,那如何利用pytorch评估真实值与预测值之间的差距了?从来确定训练模型的好坏。方法我们可以应用一个损失函数计算出一个数值来评估真实值与预测值之间的差距。然而在torch.nn中有很多的损失函数可供使用,比如nn.MSELoss就是通过计算均方差损失来评估输出和目标值之间的差距。也可以调用lo...原创 2022-12-07 00:00:04 · 1275 阅读 · 0 评论 -
PyTorch如何实现多层全连接神经网络
什么是全连接神经网络连接神经网络模型是一种多层感知机(MLP),感知机的原理是寻找类别间最合理、最具有鲁棒性的超平面,最具代表的感知机是SVM支持向量机算法。神经网络同时借鉴了感知机和仿生学,通常来说,动物神经接受一个信号后会发送各个神经元,各个神经元接受输入后根据自身判断,激活产生输出信号后汇总从而实现对信息源实现识别、分类,一个典型的神经网络如下图所示:如何实现多层全连接神经网络全连接神经网络...原创 2022-11-30 00:00:36 · 952 阅读 · 0 评论 -
关于配置深度开发学习环境所遇到的问题与解决
1 问题(1)确定电脑是否有英伟达独立显卡;(2)无法下载mnist数据集;(3)无法显示数据集中的数字图像。2 方法(1)1.打开电脑上的控制面板2.选择查看“硬件和声音”3.点击进入“设备管理器”4.左键点击:显示适配器,可以看到显卡。5.在系统配置中,从主板和显卡的型号可判断集成显卡和独立显卡。通过上述步骤,得出电脑没有独立显卡,只有集成显卡,和后面代码检测的结果一致。(2)根据运行结果显示...原创 2022-12-01 00:00:29 · 239 阅读 · 0 评论 -
Pytorch-DataLoader(数据迭代器)
在没有用pytorch之前,读取数据一般时写一个load_data的函数,在里面导入数据,做一些数据预处理,这一部分就显得很烦索。对于深度学习来说,还得考虑batch的读取、GPU的使用、数据增强、数据乱序读取等等,所以需要有一个模块来集中解决这些事情,所以就有了data_loader的机制。Dataloader的处理逻辑是先通过Dataset类里面的__getitem__函数获取单个的数据,...原创 2022-11-29 00:00:44 · 1560 阅读 · 0 评论 -
如何对minist数据进行预处理
1 问题深度学习中,数据很多,不能一次性把数据全都放到模型中进校训练,所以利用数据加载,进行顺序打乱,分批,预处理之类的操作2 方法使用pytorch提供的 Dataset(数据集类)(获取数据位置和个数)train=datasets.MNIST(root='data',download=False,train=True,transform=ToTensor())test=datasets.MNI...原创 2022-11-16 00:00:09 · 458 阅读 · 0 评论 -
如何进行全连接层代码编写
1 问题如何理解全连接层?如何进行全连接层代码编写?2 方法步骤:导入需要用到的包,编写一个类继承nn.Module,将图像用nn.Flatten进行拉伸,编写代码将全连接层连接,输出结果导入torch库,和torch里面的nn库,后面要继承nn里面的类将图像进行拉伸,编写全连接层的各层3.定义一个函数forward,先将先进行拉伸,可以输出layer1,layer2,layer3,最后将laye...原创 2022-11-26 00:00:04 · 948 阅读 · 0 评论 -
Dataloader有哪些使用方法
1 问题Dataloader有哪些使用方法?2 方法构建dataset类在构建数据集类时,除了__init__(self),还要有__len__(self)与__getitem__(self,item)两个方法,这三个是必不可少的,至于其它用于数据处理的函数,可以任意定义。class dataset: def __init__(self,...): ... def __len__(s...原创 2022-11-10 00:00:14 · 338 阅读 · 0 评论 -
【PyTorch】网络搭建中*list的用法解析
*list解包搭建网络示例。原创 2022-11-14 09:20:02 · 525 阅读 · 0 评论 -
【PyTorch】利用torch.cat()实现Tensor的拼接
Tensor的拼接操作原创 2022-11-07 21:34:32 · 788 阅读 · 0 评论 -
关于PyTorch继承nn.Module出现raise NotImplementedError的问题解决方案
问题描述:解决方法:NotImplementedError 错误:子类没有完成父类的接口,在此就是父类(nn.Module)中的 forward 方法在子类中没有定义,则会自动调用 nn.Module 中的forward方法,而 nn.Module 中的 forward 是 raise 将错误抛出。所以出现 NotImplementedError 错误。2.问题锁定在forward方法上:(1)没...原创 2022-11-05 00:00:39 · 873 阅读 · 0 评论 -
【PyTorch】 torch.flatten()与nn.Flatten()的区别
nn.Flatten()与torch.flatten()的区别原创 2022-10-25 08:25:13 · 323 阅读 · 0 评论 -
【PyTorch】 torch.flatten()与nn.Flatten()的区别
nn.Flatten()与torch.flatten()的区别原创 2022-10-24 22:31:07 · 2238 阅读 · 0 评论 -
训练集训练次数对测试效果的关系证明
1 问题训练集训练次数对测试效果的有多大效果,训练次数是否成正相关,是否存在最优训练次数,它的关系图像是怎样的?怎样获得它的关系图像?2 方法在这里我们通过torch,数据来自datasets,数据处理使用的是dataloader的分段功能,返回的值通过correct = (pred.argmax(1)==y).type(torch.int).sum().item()实现每一组正确的数量,我们在取...原创 2022-10-10 00:00:14 · 598 阅读 · 0 评论 -
怎么使用Dataloder来处理加载数据集
1 问题在Pytorch中,torch.utils.data中的Dataset与DataLoader是处理数据集的两个函数,用来处理加载数据集。通常情况下,使用的关键在于构建dataset类。今天我使用DAtaloader。2 方法在构建数据集类时,除了__init__(self),还要有__len__(self)与__getitem__(self,item)两个方法,这三个是必不可少的,至于其它...原创 2022-10-07 00:00:10 · 613 阅读 · 0 评论 -
运用SGD提高网络性能
1 问题在深度学习的过程中,一个不经过任何训练的网络的性能准确率很低,并没有达到预想中的程度,那么应该如何提高网络性能?如何让准确率达到较高的程度呢? 2 方法在没有任何训练的准确率普遍只有10%左右,而我们就在想,如何让模型训练一下,会有怎样的结果呢?通过网上的资料发现,优化算法能改善训练方式,来最小化损失函数,随机梯度下降算法SGD就是一个非常不错的方法,SGD对每个训练样本进行参数更新...原创 2022-10-06 00:00:28 · 477 阅读 · 0 评论 -
如何提高深度学习预测准确率
1.问题 在深度学习中,评估模型很重要的一点就是准确率,就是正例预测也是正例的数量占所有预测是正例的数量的比例,但在模型训练中,准确率有时候不是很高,我们就需要来提高准确率,让模型达到我们的要求,2.方法 在网上我们可以找到很多提高准确率的方法,优化参数,修改模型等等,都可以提高模型的准确率,我们通过学习率的方法来提高最后的准确率,首先我们定义每一批次处理的数据大小,然后计算分批处理次数,m...原创 2022-10-04 00:00:59 · 1165 阅读 · 0 评论 -
运用优化器提高网络测试性能
1 问题在对mnist进行网络性能测试的时候,没有经过网络训练的模型预测正确结果两次出现结果不一样,而且预测的结果的正确率比较低,这个时候我们就在想如何提高网络的性能呢?模型需要训练,如何进行训练?2 方法 我们在没有经过训练的时候网络测试性能比较低,128个数字正确率不到百分之十,这个时候我们就要想经过模型的训练来提高预测结果的正确性,网络训练的过程大致是给定一个真实标签y,网络训练标签y_...原创 2022-10-03 00:00:27 · 152 阅读 · 0 评论 -
【PyTorch】Mnist的transforms图像处理
什么是mnistMNIST数据集是一个公开的数据集,相当于深度学习的hello world,用来检验一个模型/库/框架是否有效的一个评价指标。MNIST数据集是由0〜9手写数字图片和数字标签所组成的,由60000个训练样本和10000个测试样本组成,每个样本都是一张28 * 28像素的灰度手写数字图片。MNIST 数据集来自美国国家标准与技术研究所,整个训练集由250个不同人的手写数字组成,其中5...原创 2022-10-02 00:00:35 · 788 阅读 · 0 评论 -
搭建三层全连接网络
1 问题全连接神经网络中数据的流通方式是怎样的?2 方法全连接神经网络是将输入的n维向量转换成中间的m维隐藏层向量,然后经过模型处理,再将处理后的数据转化成输出层的o维向量。数据在各层之间流动的过程中,都会涉及到数据的归一化,即,将输入数据的值域压缩到(0,1)范围内,再进入下一层级的运算过程。在层与层之间的变换过程中,数据的维度将被拉伸或压缩,这与模型的设计有关。3 结语针对这一问题,我主要通过...原创 2022-09-26 00:00:43 · 660 阅读 · 0 评论