![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Pytorch
andyL_05
EE 计算机视觉 机器学习 深度学习 算法
展开
-
pytorch命令行打印模型结构的两种方法及对比
pytorch命令行打印模型结构的两种方法及对比当我们使用pytorch进行模型训练或测试时,有时候希望能知道模型每一层分别是什么,具有怎样的参数。此时我们可以将模型打印出来,输出每一层的名字、类型、参数等。常用的命令行打印模型结构的方法有两种:一是直接print二是使用torchsummary库的summary但是二者在输出上有着一些区别。首先说结论:1. print输出结果是每一层的名字、类别、以及构造时的参数,例如对于卷积层,还包括用户定义的stride、bias等;而torch summ原创 2020-10-24 22:42:26 · 36604 阅读 · 4 评论 -
pytorch 使用预训练模型如resnet、vgg等并修改部分结构
pytorch 使用预训练模型并修改部分结构原创 2020-10-06 17:28:03 · 30590 阅读 · 13 评论 -
解决PyTorch 出现RuntimeError: Function AddBackward0 returned an invalid gradient at index 1 问题
解决PyTorch 出现RuntimeError: Function AddBackward0 returned an invalid gradient at index 1 问题在使用pytorch框架训练中,进行loss.backward()一步时可能出现如下的问题:RuntimeError: Function AddBackward0 returned an invalid gradient at index 1 - expected type TensorOptions(dtype=float,原创 2020-08-12 11:14:11 · 15014 阅读 · 7 评论 -
pytorch 网络train、eval以及在训练与测试时实现不同输出的方法
pytorch 网络train、eval以及在训练与测试时实现不同输出的方法深度学习网络往往都是通过训练过程将初始参数调优,然后通过训练后的模型进行测试与预测。对于一些场景,比如图像生成、深度图预测、分割等,有可能需要在训练过程中采用多尺度的思想,生成不同尺度的结果并计算loss,但是在测试与预测阶段,实际上只需要输出最后要求的一个尺度(分辨率)下的结果即可。这就需要我们在测试和训练时实现不同的输出。方法pytorch的网络模型有一个属性 training,用于判断当前模型是否处于训练阶段,因此,我们原创 2020-06-28 17:40:48 · 4413 阅读 · 4 评论 -
one of the variables needed for gradient computation has been modified by an inplace operation
本文主要讨论pytorch在训练时出现错误:Runtime Error:one of the variables needed for gradient computation has been modified by an inplace operation 的不同情况。对需要求导的Tensor使用了 inplace 操作inplace操作类似于a+=5即使用变量参与了运算,又修改了变量的值。这类问题在这里降解的比较清楚。比如一个张量a用于计算张量b,随后又对a重新赋值,但是使用b求解loss并反原创 2020-06-23 16:24:48 · 3009 阅读 · 4 评论 -
PyTorch 加载数据集PIL.Image和numpy相互转化出现 TypeError: Cannot handle this data type的问题
PyTorch 加载数据集PIL.Image和numpy相互转化出现 TypeError: Cannot handle this data type的问题pytorch 加载图片数据集通常会使用 PIL读入图片,进行一些预处理转化为Tensor并有dataloader加载进行训练或测试。有时候我们对图像的预处理要求较高,PIL库无法快捷的完成,常常会用numpy数据辅助完成。但是使用不当也会造成一些问题,例如:Traceback (most recent call last): File "trai原创 2020-06-22 17:40:05 · 8506 阅读 · 5 评论 -
PyTorch+TensorboardX 出现“Found more than one "run metadata" ”以及可视化多个模型graph的问题
Tensorboard是一个非常好用的深度学习可视化工具,能够将训练过程loss变化、模型结构等可视化显示,方便我们了解细节,在使用TensorFlow框架时经常用到。TensorboardX则是适用于PyTorch框架的可视化工具,使用方法基本类似。本文主要解决使用PyTorch和TensorboardX出现的一些问题。1. 出现“Found more than one “run metad...原创 2020-04-16 11:47:31 · 1063 阅读 · 0 评论 -
PyTorch 与 TensorboardX 的版本兼容性问题
1· PyTorch 与 TensorboardX 的版本兼容性问题在tensorflow的使用中,大家往往都会用tensorboard进行数据的可视化,例如模型结构、损失函数的变化等,实际上PyTorch也可以使用TensorboardX 进行可视化。PyTorch有自己的visdom模块实现可视化,但是从接口的方便、简介的角度来说,TensorboardX用起来更加容易。本文简要介绍一下自...原创 2020-01-10 21:49:42 · 17435 阅读 · 2 评论 -
pytorch 损失函数详解及自定义方法
pytorch 损失函数详解及自定义方法损失函数是机器学习与深度学习解决问题中非常重要的一部分,可以说,损失函数给出了问题的定义,也就是需要优化的目标:怎么样可以认为这个模型是否够好、怎样可以认为当前训练是否有效等。pytorch框架上手十分方便,也为我们定义了很多常用的损失函数。当然,面对特殊的应用场景或实际问题,往往也需要自行定义损失函数。本文首先介绍如何自定义损失函数,再选择一些常用或...原创 2019-12-30 14:57:52 · 4162 阅读 · 1 评论 -
BN层和Dropout在训练与测试时的差别以及实现细节
BN层和Dropout在训练与测试时的差别以及实现细节1·BN层介绍及测试训练的差别BN也即Batch Normalization,批规范化,是由谷歌的大佬们在2015年《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》提出的。文章指出,深度网络中每一层的输...原创 2019-12-26 22:29:06 · 7793 阅读 · 5 评论 -
Pytorch 模型构建、训练、测试及预测
Pytorch 模型构建、训练、测试及预测本文以AlexNet识别手写数字为例,简要介绍如何使用pytorch构建网络模型,并进行训练、测试及预测所使用的环境:Ubuntu 19.04,python 3.7,pytorch 1.1.0,torchvision 0.3.01· Pytorch模型构建pytorch自定义网络模型较为简单,自定义class继承自(torch.nn.Module)...原创 2019-12-03 13:07:18 · 36382 阅读 · 7 评论 -
Pytorch数据集的加载与使用
Pytorch 数据集的加载使用Pytorch数据集通常使用 torch.util.data.Dataset 以及 torch.utils.data.DataLoader完成。对于图像数据集,torchvision.datasets提供了一种加载数据集的方法,通过torchvision.datasets.ImageFolder将根目录下图像加载为dataset,其效果是将根目录下的指定子目录内...原创 2019-11-28 17:18:59 · 1194 阅读 · 0 评论