Pytorch
文章平均质量分 77
涉及pytorch中的各个小知识点,同时通过实战项目进行巩固训练。
PinkGranite
早上好 中午好 晚上好
展开
-
Windows下 nvidia-smi实时刷新监控显存使用情况
监控命令:nvida-smi -l x// x 为数字,表示间隔时间,单位为s主要关注信息:原创 2021-04-06 10:43:37 · 11942 阅读 · 3 评论 -
Pytorch内存优化方法,显著提升模型训练batch_size,减少out of Memory错误发生
目录1.可能的条件下,尽量使用in_place实现2.Pytorch的 ‘checkpoint’3.删除loss等不再被需要的值,释放对应的空间4. 混合精度训练参考资料:知乎讨论;pytorch论坛;官方文档;1.可能的条件下,尽量使用in_place实现使用in_place操作使得Pytorch的allocator不会记录该部分的原tensor,从而减少显存的消耗。也正是因为如此,如果在网络反向计算梯度的过程中需要用到原tensor,那么就不能够使用in_place操作,否则会使得反向传播报原创 2021-04-03 21:36:52 · 4695 阅读 · 1 评论 -
Fine tuning小技巧——Pytorch 动态调整大型网络结构中的Conv卷积层结构
作为Pytorch的最大优势之一的“动态性”体现在哪里呢?在没有遇到问题前我对这个问题并没有一个明确的答案,看了网上大家略显“官方”的解答,总觉地似懂非懂。动态性对我们平常的使用究竟有什么影响呢?看了下面这个例子也许你会和我一样感到豁然开朗。目录一、具体问题:二、可能的解决方案三、解决方案四、小节一、具体问题:假设我们在做一个“车载识别”项目,要求输入的是stereo图像(简单理解就是左右“眼”两张图像)。这个时候我们在github上找到了一个项目,它的网络结构设计简直完美,我们非常想借鉴一下,但不原创 2021-03-30 17:27:34 · 425 阅读 · 0 评论 -
一文理清Pytorch数据加载三大件——DataLoader,Dataset,Sampler
本文以 官方文档 为依据,不涉及大量的源码推导,仅在必要处展示示例代码,意在帮助各位读者理清楚Pytorch的数据加载机制,以根据自己的意志实现项目中的数据加载需求。目录一、DataLoader,Dataset,Sampler之间如何协调工作二、详解DataLoader三、Dataset四、Sampler五、结语一、DataLoader,Dataset,Sampler之间如何协调工作理清三者的关系,对我们进行数据加载的全局把控是十分关键的。我们首先来看一小段源码:(注意,这里省略了部分细节,仅展示核心原创 2021-03-19 15:58:37 · 580 阅读 · 0 评论 -
图解“逆卷积”操作(分步卷积)——基于torch.nn.ConvTranspose2d( )
本篇文章不涉及十分复杂的数学公式,仅以形象的方式帮助大家理解“逆卷积”的计算过程,请各位看官放心实用。什么是逆卷积?相信在很多论文或者具体模型中我们都曾经碰见过ConvTranspose,其经常出现在需要进行上采样的地方,通俗来讲,就是需要进行特征恢复或者图像扩大的地方。而之所以称其为“逆卷积”,是因为该方法进行上采样的方式与卷积操作互为“逆过程”。常见误区:逆卷积就是将卷积复原上面的这种说法事实上是错误的,事实上受到卷积操作权重的影响,我们不能确定原来的特征值在卷积域内的分布情况。如下图所示:在已原创 2021-03-17 20:07:08 · 2670 阅读 · 3 评论 -
Pytorch nn.RNN()解析
RNN基本结构与nn.RNN()参数介绍可参考:参数介绍官方文档以下代码对 nn.RNN() 的简单应用进行了注解介绍import torchimport torch.nn as nnimport torch.functional as F# 单层RNN,输入x特征为10,输出特征为20, 两层堆叠rnn = nn.RNN(10, 20, 2)# 随机构建输入,这里假设每句话只有10个单词,共3句话(即一个batch 3句话),每个单词被embedding为10维向量inputs =原创 2020-11-20 11:01:27 · 1260 阅读 · 0 评论 -
CV经典模型——ResNet
本篇文章以代码为主要展现形式,穿插与代码部分的注释对各关键部位进行了解释ResNet是由Kaiming He为主的几位研究员提出的具有重要意义的模型结构。ResNet的出现对于 “神经网络层数达到一定数量后,越深的神经网络反而会降低模型精度” 这个问题提出了一种可能的解决方案——即通过“shortcut”进行层次短接:shortcut保证低层次模型得到良好的训练,同时给予模型再次提升的能力,即若在原低层模型以外存在进一步提升模型能力的可能则进行尝试并提升。1. 结构分析上图所示即为原模型中的基本结原创 2020-11-03 23:08:39 · 800 阅读 · 0 评论 -
CV经典模型——LeNet-5
本篇文章主要以代码的形式展现,需要注意的地方皆在代码中以注释的方式进行说明,如有疑问欢迎在评论区留言,大家一起进步!LeNet-5是上世纪末计算机视觉领域的重要产物,其诞生为后来形形色色CNN的产生提供了可能,因此理解其结构精髓是十分重要的,若能自己动手进行实现则更有助于我们的理解,首先上一张LeNet-5的结构图:结构分析:从上图中可以很清晰的看出,LeNet-5是一个“2+3”结构(忽略Subsampling层),由两层卷积与三层全连接构成。注意当时的LeNet使用的sampling方法只是简原创 2020-10-31 15:35:24 · 273 阅读 · 2 评论