
Pytorch问题整理
文章平均质量分 69
l8947943
如果生命不是为了好玩,那还有什么意义。
展开
-
安装torch后,torch.cuda.is_available()结果为false的问题
1. 在conda虚拟环境中安装了torch,一般命令都可以正常使用,但是使用cuda的命令torch.cuda.is_available()则输出False。2. 经过一番查阅资料后,该问题的根本原因是CUDA环境与Torch版本不匹配,因此最直接的解决方式就是使用官方推荐的版本进行适配。3. 解决思路查看本机安装的cuda版本,通过查阅有三个命令cat /usr/local/cuda/version.txtnvidia-sminvcc -V有时候会不幸输出三个不同的版本,这里在虚原创 2020-12-23 16:04:05 · 34726 阅读 · 12 评论 -
BatchNorm2d的使用
先看用法import torchimport torch.nn as nninput = torch.randn(1, 2, 3, 4)print(input)bn = nn.BatchNorm2d(num_features=2)res = bn(input)print(res)2. 作用其实就是将一批feature map进行标准化处理。我们都学过正态分布的表达,xˉi=x−μσ2{\bar x_i} = \frac{{x - \mu }}{{{\sigma ^2}}}xˉ.原创 2020-12-18 21:22:43 · 2808 阅读 · 2 评论 -
np.transpose()函数详解
1. 碰见 numpy.transpose 用于高维数组时挺让人费解,通过分析和代码验证,发现 transpose 用法还是很简单的。说白了就是映射坐标轴2. 举个例子:x = np.arange(12).reshape((2,3,2))创建一个2 * 3 * 2的数组:使用 numpy.transpose ()进行变换,其实就是交换了坐标轴,如:x.transpose(1, 2, 0......原创 2020-04-23 13:04:21 · 62924 阅读 · 14 评论 -
pytorch中对于图像数据集进行划分成train,test和val
手上目前拥有数据集是一大坨,没有train,test,val的划分,如图所示目录结构:|---data |---dslr |---images |---back_pack |---a.jpg |---b.jpg ...转换后的格式如图目录结构为:|---...原创 2020-04-23 00:03:52 · 5511 阅读 · 3 评论 -
pytorch定义新的自动求导函数
在pytorch中想自定义求导函数,通过实现torch.autograd.Function并重写forward和backward函数,来定义自己的自动求导运算。参考官网上的demo:传送门直接上代码,定义一个ReLu来实现自动求导import torchclass MyRelu(torch.autograd.Function): @staticmethod def f...原创 2020-04-20 14:32:56 · 1424 阅读 · 0 评论 -
pytorch使用ImageFolder和random_split读取和划分数据集
1. 最近重新学习torch知识,想实现对自己的数据集的封装和划分,由于自己的数据集格式如图所示层级结构:|---data |---amazon |---images |---back_pack |---frame_0001.jpg |---frame_0002.jpg |---frame_0002.jpg ...2. 首先,如果数据集层级结构...原创 2020-04-19 22:34:04 · 6915 阅读 · 16 评论 -
Pytorch加载自己的数据集(使用DataLoader读取Dataset)
1. 我们经常可以看到Pytorch加载数据集会用到官方整理好的数据集。很多时候我们需要加载自己的数据集,这时候我们需要使用Dataset和DataLoaderDataset:是被封装进DataLoader里,实现该方法封装自己的数据和标签。DataLoader:被封装入DataLoaderIter里,实现该方法达到数据的划分。2.Dataset阅读源码后,我们可以指导,继承该方法必须.........原创 2019-12-27 16:19:53 · 53541 阅读 · 42 评论 -
Expected object of scalar type Long but got scalar type Double for argument #2 ‘target‘
1.pytorch报错:loss_class = torch.nn.CrossEntropyLoss()s_data, s_label = data_source[0].to(DEVICE), data_source[1].to(DEVICE)class_output, domain_output = model(input_data=s_data.float(), alpha=alph...原创 2019-12-27 15:12:39 · 12462 阅读 · 4 评论 -
Pytorch的modle.train,model.eval,with torch.no_grad的个人理解
1. 最近在学习pytorch过程中遇到了几个问题,不理解为什么在训练和测试函数中model.eval(),和model.train()的区别,经查阅后做如下整理一般情况下,我们训练过程如下:拿到数据后进行训练,在训练过程中,使用model.train():告诉我们的网络,这个阶段是用来训练的,可以更新参数。训练完成后进行预测,在预测过程中,使用model.eval() ...原创 2019-12-27 13:47:38 · 6789 阅读 · 2 评论