pytorch
文章平均质量分 87
太阳花的小绿豆
这个作者很懒,什么都没留下…
展开
-
使用Pytorch导出自定义ONNX算子
在实际部署模型时有时可能会遇到想用的算子无法导出onnx,但实际部署的框架是支持该算子的。此时可以通过自定义onnx算子的方式导出onnx模型(注:自定义onnx算子导出onnx模型后是无法使用onnxruntime推理的)。但对于当前导出onnx场景可以不用管它,后面的参数是实际自己传入的参数。方法指定具体导出自定义算子的名称,以及输入的参数(注:上面示例中传入的都是。打开自己导出的onnx文件,可以看到如下所示网络结构。,后面的参数任为实际自己传入的参数,然后通过。方法是在导出onnx时调用的函数。原创 2024-03-04 23:43:17 · 2427 阅读 · 7 评论 -
RepVGG网络简介
VGG网络是2014年由牛津大学著名研究组VGG (Visual Geometry Group) 提出的。在2014到2016年(ResNet提出之前),VGG网络可以说是当时最火并被广泛应用的Backbone。后面由于各种新的网络提出,论精度VGG比不上ResNet,论速度和参数数量VGG比不过MobileNet等轻量级网络,慢慢的VGG开始淡出人们的视线。...............原创 2022-07-10 15:31:08 · 34195 阅读 · 31 评论 -
Grad-CAM简介
对于常用的深度学习网络(例如CNN),可解释性并不强(至少现在是这么认为的),它为什么会这么预测,它关注的点在哪里,我们并不知道。很多科研人员想方设法地去探究其内在的联系,也有很多相关的论文。今天本文简单聊一聊Grad-CAM,这并不是一篇新的文章,但很有参考意义。通过Grad-CAM我们能够绘制出如下的热力图(对应给定类别,网络到底关注哪些区域)。原创 2022-02-24 20:40:31 · 96281 阅读 · 101 评论 -
Pytorch1.10安装记录(CUDA11.3)
Pytorch刚更新到1.10,今天就简单尝个鲜,之前在使用1.9中有很多的UserWarning,在新版本中都已经修复了(强迫者的福音),推荐使用。关于Pytorch1.10更新的内容,请登录Pytorch官网查看。PyTorch官网:https://pytorch.org/文章目录查询NVIDIA GPU算力(可跳过)创建虚拟环境在线安装(CPU/GPU)安装CPU版本安装GPU版本检查GPU驱动版本更新GPU驱动安装Pytorch离线安装(CPU/GPU)安装CPU版本安装GPU版本查询NVI原创 2021-10-25 15:24:09 · 69781 阅读 · 26 评论 -
转置卷积(Transposed Convolution)
import torchimport torch.nn as nndef transposed_conv_official(): feature_map = torch.as_tensor([[1, 0], [2, 1]], dtype=torch.float32).reshape([1, 1, 2, 2]) print(feature_map) trans_conv = nn.ConvTranspose2原创 2021-10-13 15:27:30 · 43880 阅读 · 33 评论 -
pytorch转paddle推理模型
最近有个需求,是将训练好的pytorch模型转成paddlepaddle的inference_model,然后直接使用paddlepaddle载入使用。转换的工具主要使用paddle官方提供的X2paddle,对应项目链接:https://github.com/PaddlePaddle/X2Paddle官方文档中有对应pytorch模型转paddlepaddle模型的教程,但我只需要inference_model,所以我采用的方法是先将训练好的pytorch模型转成ONNX格式,然后在用X2Paddle原创 2021-08-25 15:15:36 · 6346 阅读 · 11 评论 -
Group Normalization详解
论文名称:Group Normalization论文地址:https://arxiv.org/abs/1803.08494在之前的文章中有介绍过BN(Batch Normalization),链接,以及LN(Layer Normalization),链接。今天来简单聊聊GN(Group Normalization)。在视觉领域,其实最常用的还是BN,但BN也有缺点,通常需要比较大的Batch Size。如下图所示,蓝色的线代表BN,当batch size小于16后error明显升高(但大于16后的效果确原创 2021-06-18 14:50:14 · 11921 阅读 · 13 评论 -
Layer Normalization解析
原论文名称:Layer Normalization原论文地址: https://arxiv.org/abs/1607.06450之前有讲过Batch Normalization的原理,链接,今天来简单讲讲Layer Normalization。Layer Normalization是针对自然语言处理领域提出的,例如像RNN循环神经网络。为什么不使用直接BN呢,因为在RNN这类时序网络中,时序的长度并不是一个定值(网络深度不一定相同),比如每句话的长短都不一定相同,所有很难去使用BN,所以作者提出了Lay原创 2021-06-07 14:45:45 · 42667 阅读 · 18 评论 -
使用fvcore计算Pytorch中模型的参数数量以及FLOPs
fvcore是Facebook开源的一个轻量级的核心库,它提供了各种计算机视觉框架中常见且基本的功能。其中就包括了统计模型的参数以及FLOPs等。fvcore is a light-weight core library that provides the most common and essential functionality shared in various computer vision frameworks项目开源地址:https://github.com/facebookresear原创 2021-06-02 16:16:49 · 13586 阅读 · 21 评论 -
Linux安装Pytorch1.8GPU(CUDA11.1)
先说下自己之前的环境(都是Linux系统,差别不大):Centos7.6NVIDIA Driver Version 440.33.01(等会需要更新驱动)CUDA10.1Pytorch1.6/1.7提示,如果想要保留之前的PyTorch1.6或1.7的环境,请不要卸载CUDA环境,可以通过Anaconda管理不同的环境,互不影响。但是需要注意你的NVIDIA驱动版本是否匹配。在这里能够看到官方给的对应CUDA版本所需使用驱动版本。通过上表可以发现,如果要使用CUDA11.1,那么需要将显卡原创 2021-03-16 21:08:46 · 19687 阅读 · 16 评论 -
Tensorflow中卷积的padding操作
文章目录Tensorflow中padding为valid的情况Tensorflow中padding为same的情况和Pytorch的padding简单对比实验对比实验1实验2实验3实验4实验5实验6关于Tensorflow中卷积的padding其实在之前的课程中我有讲过,不过本节课会在详细讲解下,并和Pytorch中卷积的padding进行简单的对比。关于Pytorch中卷积的padding可以参考我之前写的一片文章。在Tensorflow中卷积的padding一般需要指定为same或者valid,并原创 2021-03-03 17:38:16 · 2360 阅读 · 0 评论 -
Pytorch与Tensorflow权重互转
文章目录准备测试输入数据将Pytorch卷积层权重转到Tensorflow中将Pytorch DW卷积层权重转到Tensorflow中将Pytorch BN层权重转到Tensorflow中全连接层完整测试代码在Pytorch以及Tensorflow官方,都有提供一些常用的预训练模型权重(在ImageNet上预训练得到的)。但有些时候,Pytorch官方提供的模型Tensorflow官方并没有。此时就会想些办法,将Pytorch官方提供的模型权重转到Tensorflow的模型中。反之亦然。首先,在Pyto原创 2021-02-19 16:15:00 · 6126 阅读 · 3 评论 -
使用Mini-ImageNet训练分类网络
文章目录数据集下载链接数据集简介制作新的train以及val文件训练自己的网络数据集下载链接百度网盘下载:链接: https://pan.baidu.com/s/1Uro6RuEbRGGCQ8iXvF2SAQ 密码: hl31数据集简介提到Imagenet大家都知道,是一个非常大型、有名的开源数据集。一般设计一个新的分类网络就会在Imagenet1000类的数据上进行训练以及验证。包括常见的目标检测网络等,所使用的backbone一般都会先基于Imagenet进行预训练。但对于普通研究员或者开发原创 2021-01-23 10:53:41 · 26388 阅读 · 57 评论 -
Pytorch中多GPU并行计算教程
如果不想看文字的,可以在我bilibili上看录制的视频教程:Pytorch多GPU使用教程常见多GPU使用方法在训练模型中,为了加速训练过程,往往会使用多块GPU设备进行并行训练(甚至多机多卡的情况)。如下图所示,常见的多GPU的使用方法有以下两种(但不局限于以下方法):model parallel,当模型很大,单块GPU的显存不足以放下整个模型时,通常会将模型分成多个部分,每个部分放到不同的GUP设备中(下图左侧),这样就能将原本跑不了的模型利用多块GPU跑起来。但这种情况,一般不能加速模原创 2020-11-17 18:28:55 · 29663 阅读 · 35 评论 -
YOLO v3网络结构分析
相信阅读了YOLO v3论文的小伙伴们会发现为什么这次的论文篇幅这么少?除去参考文献就四面?Excuse me?我是下了篇假文献吧。读完后感觉内容确实不多,而且总感觉写的不够细致,很多地方都比较模糊,可能是作者想让大家去观摩他的代码吧。本人是小白,看后表示有点蒙。于是在Github上搜了大牛们基于Tensorflow搭建的YOLOv3模型进行分析(本人只接触过TF,所以就不去看caffe的源码...原创 2018-07-26 12:07:09 · 175046 阅读 · 202 评论 -
openvino使用(一)转换并量化(INT8)分类网络模型
在pycharm中使用openvino包,不能直接使用图标启动,要使用终端启动。如果不知道pycharm的启动文件在哪,可以通过以下指令查找:sudo find / -name pycharm.sh找到后进入pycharm.sh所在文件夹,执行该启动脚本:./pycharm.sh将onnx模型转成IR格式(FP16除了模型小一点,没任何提速):python mo.py --input_model ~/my_project/resnet34.onnx --output_dir ~/openvin原创 2020-09-09 15:56:59 · 10442 阅读 · 9 评论 -
MobileNet(v1、v2)网络详解与模型的搭建
首先给出三个链接:1. MobileNet(v1,v2)网络详解视频2. 使用pytorch搭建mobilenet v2并基于迁移学习训练视频3. 使用tensorlow2搭建mobilenet v2并基于迁移学习训练视频在之前的文章中讲的AlexNet、VGG、GoogLeNet以及ResNet网络,它们都是传统卷积神经网络(都是使用的传统卷积层),缺点在于内存需求大、运算量大导致无法在...原创 2020-04-26 17:50:50 · 22876 阅读 · 27 评论 -
ResNet网络结构详解与模型的搭建
首先给出三个链接:1. ResNet网络结构详解视频2. 使用Pytorch搭建ResNet网络并基于迁移学习训练3. 使用Tensorflow搭建ResNet网络并基于迁移学习训练ResNet网络是在2015年由微软实验室提出,斩获当年ImageNet竞赛中分类任务第一名,目标检测第一名。获得COCO数据集中目标检测第一名,图像分割第一名。下图是ResNet34层模型的结构...原创 2020-03-07 13:37:55 · 55252 阅读 · 36 评论 -
Batch Normalization详解以及pytorch实验
Batch Normalization是google团队在2015年论文《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》提出的。通过该方法能够加速网络的收敛并提升准确率。在网上虽然已经有很多相关文章,但基本都是摆上论文中的公式泛泛而谈,bn真正是如何运作的很少...原创 2020-02-21 23:56:33 · 61441 阅读 · 79 评论 -
GoogLeNet网络结构详解与模型的搭建
首先给出三个链接:1. GoogLeNet网络结构详解视频2. 使用pytorch搭建GoogLeNet网络并训练3. 使用tensorflow搭建GoogLeNet网络并训练GoogLeNet在2014年由Google团队提出(与VGG网络同年,注意GoogLeNet中的L大写是为了致敬LeNet),斩获当年ImageNet竞赛中Classification Task (分...原创 2020-02-20 16:43:49 · 9150 阅读 · 15 评论 -
VGG网络结构详解与模型的搭建
首先贴出三个链接:1. VGG网络结构详解视频2. 使用pytorch搭建VGG并训练3. 使用tensorflow搭建VGG并训练VGG网络是在2014年由牛津大学著名研究组VGG (Visual Geometry Group) 提出,斩获该年ImageNet竞赛中 Localization Task (定位任务) 第一名 和 Classification Task (分类...原创 2020-02-20 15:23:22 · 21076 阅读 · 22 评论 -
Centos7 安装Tensorflow2.1 GPU以及Pytorch1.3 GPU(CUDA10.1)
这两天GPU设备到了,然后搭建下环境,顺便记录安装流程(注意这里是Centos7),我们先看下安装tensorflow2.1 GPU和Pytorch1.3 GPU所需的环境。当前tensorflow的最新稳定版本是2.1,根据**官网的要求:需要CUDA10.1、cuDNN7.6、TensorRT6.0(可选)**当前Pytorch的最新稳定版本是1.3,根据**官网的要求:需要C...原创 2020-01-11 11:36:05 · 10754 阅读 · 17 评论 -
pytorch中对于tensor的一些骚操作
使用环境:pytorch1.3.1;python3.6最近在读pytorch官方实现的Faster RCNN代码时,发现了一些非常规的tensor操作,为了方便理解,在此记录下:1. (a[:, None] * b[None, :]).view(-1)这是在计算anchor的k值出现的操作,其中a为一维向量[a1, a2, ..., an],b也为一维向量[b1, b2, ..., b...原创 2019-12-12 20:56:41 · 3136 阅读 · 1 评论 -
深度学习在图像处理中的应用(tensorflow2.4以及pytorch1.10实现)
本人在读研期间的研究方向是图像处理以及深度学习(主要是图像分类和目标检测)。在做深度学习时使用的是tensorflow深度学习框架,学习全是自学,很多资源都是在Github上找的。我发现现在Github上很多深度学习的开源项目都是用的tensorflow和pytorch框架。所以现在也开始学习pytorch框架,之前一直用的是tensorflow1.x版本,今年正好迎来了新的tensorlfow大.........原创 2019-12-10 20:36:50 · 125576 阅读 · 515 评论 -
pytorch中的卷积操作详解
首先说下pytorch中的Tensor通道排列顺序是:[batch, channel, height, width]我们常用的卷积(Conv2d)在pytorch中对应的函数是:torch.nn.Conv2d(in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=Tr...原创 2019-11-05 23:35:22 · 42024 阅读 · 24 评论