pytorch
zxyhhjs2017
这个作者很懒,什么都没留下…
展开
-
pytorch---之转成one-hot向量
对于分类问题,标签可以是类别索引值也可以是one-hot表示。以10类别分类为例,lable=[3] 和label=[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]是一致的.现在给定索引标签,怎么将其转换为one-hot标签表示?或者直接torch.LongTensor(data),然后再转为one-hot>>>class_num = 10>&g...转载 2018-09-25 17:38:53 · 10437 阅读 · 1 评论 -
pytorch---之item()
torch.Tensor.item() 坑,注意只能是一个值,适合返回loss,acc原创 2019-05-10 14:57:27 · 10127 阅读 · 1 评论 -
pytorch-tensorflow版本选择-cuda8-cudnn5.1
conda install tensorflow-gpu==1.12.0conda install pytorch==1.0.1原创 2019-05-10 21:16:36 · 772 阅读 · 1 评论 -
pytorch---错误The NVIDIA driver on your system is too old
AssertionError:The NVIDIA driver on your system is too old (found version 9000).Please update your GPU driver by downloading and installing a newversion from the URL: http://www.nvidia.com/Download...原创 2019-05-13 13:37:58 · 6462 阅读 · 0 评论 -
pytorch---之torch.manual_seed()
torch.manual_seed(args.seed) #为CPU设置种子用于生成随机数,以使得结果是确定的if args.cuda:torch.cuda.manual_seed(args.seed)#为当前GPU设置随机种子;如果使用多个GPU,应该使用torch.cuda.manual_seed_all()为所有的GPU设置种子。---------------------作者:Flo...转载 2019-06-14 09:24:43 · 3924 阅读 · 0 评论 -
pytorch---之cudnn.benchmark和cudnn.deterministic
问题在很多情况下我们都能看到代码里有这样一行:torch.backends.cudnn.benchmark = true 1 torch.backends.cudnn.benchmark = true 而且大家都说这样可以增加程序的运行效率。那到底有没有这样的效果,或者什么情况下应该这样做呢?解决办法总的来说,大部分情况下,设置这个 fl...转载 2019-06-08 21:47:41 · 14828 阅读 · 0 评论 -
pytorch---之pin_memory
pin_memory就是锁页内存,创建DataLoader时,设置pin_memory=True,则意味着生成的Tensor数据最开始是属于内存中的锁页内存,这样将内存的Tensor转义到GPU的显存就会更快一些。主机中的内存,有两种存在方式,一是锁页,二是不锁页,锁页内存存放的内容在任何情况下都不会与主机的虚拟内存进行交换(注:虚拟内存就是硬盘),而不锁页内存在主机内存不足时,数据会存放在虚...转载 2019-06-14 11:24:51 · 10291 阅读 · 0 评论 -
Pytorch---之scatter_ 理解轴的含义
scatter_(input, dim, index, src)将src中数据根据index中的索引按照dim的方向填进input中。>>> x = torch.rand(2, 5) >>> x 0.4319 0.6500 0.4080 0.8760 0.2355 0.2609 0.4711 0.8486 0.8573 0.1029 [torch.Flo...转载 2019-06-14 16:44:35 · 1376 阅读 · 0 评论 -
Pytorch(0)降低学习率torch.optim.lr_scheduler.ReduceLROnPlateau类
当网络的评价指标不在提升的时候,可以通过降低网络的学习率来提高网络性能。所使用的类class torch.optim.lr_scheduler.ReduceLROnPlateau(optimizer, mode='min', factor=0.1, patience=10, verbose=False, threshold=0.0001, threshold_mode='rel', cool...转载 2019-06-09 19:43:28 · 1446 阅读 · 0 评论 -
pytorch之---max()函数
转载:https://blog.csdn.net/liuweiyuxiang/article/details/84668269转载 2019-06-14 19:43:54 · 226 阅读 · 0 评论 -
pytorch之---max()函数
形式: torch.max(input) → Tensor返回输入tensor中所有元素的最大值:a = torch.randn(1, 3)>>0.4729 -0.2266 -0.2085torch.max(a) #也可以写成a.max()>>0.4729形式: torch.max(input, dim, keepdim=False, out=None) ...转载 2019-06-14 19:46:03 · 2349 阅读 · 0 评论 -
pytorch---之指定GPU
(原)PyTorch中使用指定的GPU转载请注明出处:http://www.cnblogs.com/darkknightzh/p/6836568.htmlPyTorch默认使用从0开始的GPU,如果GPU0正在运行程序,需要指定其他GPU。有如下两种方法来指定需要使用的GPU。1. 类似tensorflow指定GPU的方式,使用CUDA_VISIBLE_DEVICES。...转载 2019-06-17 15:22:34 · 308 阅读 · 0 评论 -
Pytorch---训练与测试时爆显存(out of memory)的一个解决方案(torch.cuda.empty_cache())
Pytorch 训练时有时候会因为加载的东西过多而爆显存,有些时候这种情况还可以使用cuda的清理技术进行修整,当然如果模型实在太大,那也没办法。使用torch.cuda.empty_cache()删除一些不需要的变量代码示例如下:try: output = model(input)except RuntimeError as exception: if "o...转载 2019-06-18 16:47:54 · 11097 阅读 · 0 评论 -
pytorch---nn.moduleList 和Sequential
转载:https://blog.csdn.net/e01528/article/details/84397174转载 2019-07-04 17:31:07 · 339 阅读 · 0 评论 -
pytorch---之MultiStepLR
classtorch.optim.lr_scheduler.MultiStepLR(optimizer,milestones,gamma=0.1,last_epoch=-1)>>> # Assuming optimizer uses lr = 0.05 for all groups>>> # lr = 0.05 if epoch < ...原创 2019-05-10 14:36:20 · 7334 阅读 · 0 评论 -
pytorch之---relu,prelu,leakyrelu
torch.nn.ReLU(inplace=False):output = max(0, x)torch.nn.PReLU(num_parameters=1, init=0.25):$PReLU(x) = max(0,x) + a * min(0,x)a是一个可学习参数。当没有声明时,nn.PReLU()在所有的输入中只有一个参数a;如果是nn.PReLU(nChannels),a将...转载 2019-03-07 16:11:44 · 27159 阅读 · 0 评论 -
pytorch---在训练中动态的调整学习率
转载:https://www.cnblogs.com/hellcat/p/8496727.html转载 2019-03-04 14:13:25 · 1017 阅读 · 0 评论 -
pytorch---之什么时候in-place操作不能用
原文发表在 知乎上 在这里就做一下同步吧。(本文章适用于 pytorch0.4.0 版本, 既然 Variable 和 Tensor merge 到一块了, 那就叫 Tensor吧)在编写 pytorch 代码的时候, 如果模型很复杂, 代码写的很随意, 那么很有可能就会碰到由 inplace operation 导致的问题. 所以本文将对 pytorch 的 inplace operati...转载 2018-09-25 19:15:57 · 4244 阅读 · 0 评论 -
pytorch---之chirdren()和modules()
children()与modules()都是返回网络模型里的组成元素,但是children()返回的是最外层的元素,modules()返回的是所有的元素,包括不同级别的子元素。官方论坛的回答:Module.children() vs Module.modules() 我以fmassa的举例为例:m = nn.Sequential(nn.Linear(2,2), ...转载 2018-09-25 20:29:37 · 470 阅读 · 0 评论 -
pytorch---之交叉商以及softmax
转载:https://blog.csdn.net/hao5335156/article/details/80607732转载 2018-09-26 11:15:11 · 1599 阅读 · 0 评论 -
pytorch---之pytorch与tensorflow的pad不同
pytorch和tensorflow所含的maxpool,虽然名字相同,但是功能是不一样。之前在用pytorch复现darknet里面的yolo-v2时才发现这个问题。在yolov2的第六个maxpool的时候,kernel为2,stride为1,所以按道理来说呢,输出的边size应该比输入的边size少1,但是yolo的设计是输入和输出的shape要相同。所以才发现了这个问题。不同之处在于...转载 2018-09-26 11:21:28 · 4814 阅读 · 0 评论 -
pytorch---之读取csv文件
转载:https://blog.csdn.net/u014630987/article/details/79887062转载 2018-09-21 19:28:08 · 16119 阅读 · 0 评论 -
pytorch---之x = x.view(x.size(0), -1) 的理解
之前对于pytorch的网络编程学习都是大致理解每一层的概念,有些语法语句没有从原理上弄清楚,就比如标题的x = x.view(x.size(0), -1) 。 这句话一般出现在model类的forward函数中,具体位置一般都是在调用分类器之前。分类器是一个简单的nn.Linear()结构,输入输出都是维度为一的值,x = x.view(x.size(0), -1) 这句话的出现就是为了将前面多...转载 2018-09-21 19:59:30 · 3168 阅读 · 0 评论 -
pytorch---dataloader之自己理解
dataloader,会用__next()__反复调用FaceLandmarksDataset中__getitem__函数,而且是根据id来调用的,这个id的获取来源于len(self.landmarks_frame),如果你选择shuffle它会随机选取id如下输出所示:每一个数据上面两个数字代表id:...原创 2018-09-27 12:53:27 · 1036 阅读 · 0 评论 -
pytorch---之dataloader使用pandas读取csv(不一次性将csv全部读入内存)
我们使用pandas的read_csv()函数中的iterators=True 来将csv循环分批读取进内存,(如果不使用iterators参数的话,数据量很大的csv文件,会全部读到内存当中去,内存肯定不够)代码如下:# -*- coding: utf-8 -*-import csvimport pandas as pdimport numpy as npimport torch...原创 2018-09-27 16:00:17 · 15196 阅读 · 2 评论 -
pytorch---之mnist
from __future__ import print_functionimport argparseimport torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optimfrom torchvision import datasets, transformsfrom ...转载 2018-09-28 18:18:34 · 399 阅读 · 0 评论 -
pytorch---f.dropout
作者:雷杰链接:https://www.zhihu.com/question/67209417/answer/302434279来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 刚踩的坑, 差点就哭出来了TT. --- 我明明加了一百个dropout, 为什么结果一点都没变 使用F.dropout ( nn.functional.dropout )...转载 2018-09-28 18:19:40 · 12765 阅读 · 2 评论 -
pytorch---之权重初始化
https://blog.csdn.net/CV_YOU/article/details/81543891https://blog.csdn.net/qq_19598705/article/details/80396047https://blog.csdn.net/qq_19598705/article/details/80396047转载 2018-09-28 18:21:33 · 2123 阅读 · 0 评论 -
pytorch---之固定某些层权重再训练
1.children()这个方法,就是将网络中的模块化,可以自己动手试试看2.然后prameters就是每一个模块里面的参数,或者是所有网络的参数都可以,相当于对一个模块或者所有网络里的参数requires_grad都设置为false,相当于这些模块里的参数都不再反传梯度了3.再在优化器这里加一点东西,如下所示:optimizer = torch.optim.RMSprop(fi...原创 2019-03-09 16:26:25 · 4494 阅读 · 0 评论 -
pytorch---之随机种子初始化
随机种子在训练开始时,参数的初始化是随机的,为了让每次的结果一致,我们需要设置随机种子。例如(权重初始化等)在main函数中加入如下语句:torch.manual_seed(args.seed)#为CPU设置随机种子 if cuda: torch.cuda.manual_seed(seed)#为当前GPU设置随机种子 torch.cuda.manual_seed_a...原创 2019-03-04 13:57:31 · 5643 阅读 · 2 评论 -
pytorch---之BN层参数详解及应用(1,2,3)(1,2)?
BN层参数详解(1,2)一般来说pytorch中的模型都是继承nn.Module类的,都有一个属性trainning指定是否是训练状态,训练状态与否将会影响到某些层的参数是否是固定的,比如BN层(对于BN层测试的均值和方差是通过统计训练的时候所有的batch的均值和方差的平均值)或者Dropout层(对于Dropout层在测试的时候所有神经元都是激活的)。通常用model.train()指定当...原创 2019-07-18 13:08:20 · 14831 阅读 · 0 评论