
pytorch
文章平均质量分 71
Hungryof
不回答任何问题!
展开
-
Pytorch 学习(二十五)---高级DataLoader技巧----每次返回的Tensor的size可以任意
总说大家都知道,默认的DataLoader每次返回的Tensor的尺寸都是固定的,因为batchsize>1时,默认需要stack一下,比如__getitem__()返回的图片return img,其中img是 CHW, 你在外面拿到就是 N*C*H*W了。因为,默认return torch.stack(batch, 0, out=out)了一下。如果每次img图片不一样,就会出错。有些...原创 2020-04-23 21:39:42 · 1903 阅读 · 1 评论 -
Pytorch 学习(二十四)----- 高级Tensor技巧(Advanced Indexing等多种操作)
总说这里记录一些比较难的操作:Advanced Indexing 可以用于赋值import torcha = torch.rand(5,5)x_indice = torch.LongTensor([1, 3, 4])y_indice = torch.LongTensor([2, 1, 1])value_put = torch.rand(3)*10print('Before')pr...原创 2020-02-18 11:04:10 · 1023 阅读 · 0 评论 -
Pytorch学习(十四) ------- Pytorch 0.4代码迁移简要总结
总说由于pytorch 0.4版本更新实在太大了, 以前版本的代码必须有一定程度的更新. 主要的更新在于 Variable和Tensor的合并., 当然还有Windows的支持, 其他一些就是支持scalar tensor以及修复bug和提升性能吧. Variable和Tensor的合并导致以前的代码会出错, 所以需要迁移, 其实迁移代价并不大.Tensor和Variable的合并...原创 2018-04-27 12:27:10 · 10372 阅读 · 1 评论 -
Pytorch学习(十五)------ 杂项知识汇总
总说记录一下一些小知识, 方便查用.(不断更新中) 1. 自定义RNN的写法: Implementation of Multiplicative LSTM 2. 自定义二阶梯度写法: How to implement customized layer with second order derivatives How to customize the double backward 3...原创 2018-05-15 15:29:45 · 816 阅读 · 0 评论 -
Pytorch学习(十六)----获取网络的任意一层的输出
其实一般来说,如果一个net中,是一个Sequential直接把所有层全部包含起来的,那么不好获得其中任意一层的feature map(至少我还不知道。。, 比较简单的方法就是 在想要得到那一层的后面的网络,全部用另一个sequential包含起来。比如:import torchfrom torch.autograd import Variableimport torch.nncl...原创 2018-07-05 08:56:58 · 35191 阅读 · 4 评论 -
Pytorch学习(十七)--- 模型load各种问题解决
简单的模型load一般来说,保存模型是把参数全部用model.cpu().state_dict(), 然后加载模型时一般用 model.load_state_dict(torch.load(model_path))。 值得注意的是:torch.load 返回的是一个 OrderedDict.import torchimport torch.nn as nnclass Net_old(...原创 2018-08-02 18:22:56 · 78826 阅读 · 18 评论 -
Pytorch学习(十八)--- VQA种Dynamic网络的写法
VQA中常用的方法是Dynamic网络,就是一个网络的输出作为另一个网络的filter权重。fliter = nn.Conv2d(…)# 当然这样写诗错的filter.weight.data.fill_(network_output).filter.forward(image)正确写法:import torch.nn.functional as Fp = F.conv2...原创 2018-08-15 21:22:11 · 1077 阅读 · 0 评论 -
Pytorch学习(十九)--- 模型中buffer的使用
总说我们知道,pytorch一般情况下,是将网络中的参数保存成OrderedDict形式的。这里额参数其实包括2种。一种是模型中各种 module含的参数,即nn.Parameter,我们当然可以在网络中定义其他的nn.Parameter参数。;另外一种是buffer。前者每次optim.step会得到更新,而不会更新后者。例子class myModel(nn.Module):...原创 2018-08-24 14:23:54 · 15953 阅读 · 6 评论 -
Pytorch学习(二十) ------ 可能有用的代码合集
总说记录一些比较有用的pytorch代码(有些是自己写的, 有些是从网上看到的)目录提取网络特征(适用于sequential构建的网络)修改Pretrained的网络(如ResNet等)提取网络特征(适用于sequential构建的网络)class VGG16FeatureExtractor(nn.Module): def __init__(self): s...原创 2019-03-13 10:26:48 · 1897 阅读 · 0 评论 -
Pytorch学习 (二十一) ------自定义C++/ATen扩展
总说没办法, 出来混总是要还的, 不会写点底层代码没法混啊. 废话不多说, 简单来说, 有时候我们需要写一些自定义的操作, 这些操作如果用python写会很慢, 我们需要用CUDA写, 然后这些操作与python绑定, 以供python端调用.主要是简略拿出 https://pytorch.org/tutorials/advanced/cpp_extension.html 的东西, 根据实践,...原创 2019-03-27 22:42:28 · 8458 阅读 · 9 评论 -
Pytorch的坑记录
总说简要记录一下pytorch中的坑LongTensor(IntTensor)和float数字操作,直接变成0!坑1: long tensor的bug?import torcha = (torch.rand(3,4)*10).long()print(a)print(a*0.9)tensor([[8, 5, 3, 4], [1, 3, 6, 7], ...原创 2019-07-25 12:19:34 · 724 阅读 · 0 评论 -
Pytorch学习 ( 十三 ) ----- Pytorch自定义层出现多Variable共享内存错误
错误信息: RuntimeError: in-place operations can be only used on variables that don’t share storage with any other variables, but detected that there are 4 objects sharing it自动求导是很方便, 但是想想, 如果两个Variable...原创 2018-04-19 23:24:15 · 2977 阅读 · 1 评论 -
Pytorch学习 (十二) ----- Pytorch中如何使用Tensor Comprehensions
总说使用方式: 1. 定义TC语言, 然后传入 tc.define 2. 创建torch tensors(用不用Variable包起来都不影响, pytorch0.4版本都没必要加Variable, 直接tensor即可) 3. 跑这一层就行import tensor_comprehensions as tcimport torchMATMUL_LANG = """def ...原创 2018-04-08 13:21:29 · 1467 阅读 · 0 评论 -
Pytorch学习(十一)--- Tensor Comprehensions 初探
初衷其实, 有时候你会很难受. 因为你有一些想法, 在python端写会很慢, 写成cuda代码又有难度, 还要想着各种优化. 这时候你就不爽了,好不容易想到骚操作, 竟然因为写不来代码, 就泯灭这个想法吗. 这时候, 你可以看看Tensor Comprehesions(TC)这个包.先吹一波: TC是一个让你不用写高性能代码的包, 它会直接根据简单的语法来生成GPU代码. 如果你还在为...原创 2018-03-21 07:31:16 · 2321 阅读 · 2 评论 -
Pytorch入门学习(三)---- NN包的使用
pytorch和torch的对比。pytorch将所有的Container都用autograd替代。这样的话根本不需要用ConcatTable,CAddTable之类的。直接用符号运算就行了。 output = nn.CAddTable():forward({input1, input2}) 直接用output = input1 + input2 就行。真简单。原创 2017-05-08 21:00:48 · 11272 阅读 · 0 评论 -
Pytorch入门学习(四)---- 多GPU的使用
DataParrallelimport torch.nn as nnclass DataParallelModel(nn.Module): def __init__(self): super().__init__() self.block1 = nn.Linear(10, 20) # wrap block2 in DataParallel原创 2017-05-08 22:02:31 · 17509 阅读 · 2 评论 -
Pytorch入门学习(五)---- 示例讲解Tensor, Autograd, nn.module
Pytorch学习,直接看例子快速入门。原创 2017-05-09 12:35:03 · 9859 阅读 · 0 评论 -
Pytorch入门学习(六)--- 加载数据以及预处理(初步)--- 只为了更好理解流程
pytorch加载数据(初步)原创 2017-08-03 14:28:19 · 11109 阅读 · 3 评论 -
Pytorch入门学习(七)---- 数据加载和预处理的通用方法
数据加载和预处理的通用方法原创 2017-08-03 21:33:29 · 24867 阅读 · 7 评论 -
Pytorch学习入门(二)--- Autograd
pytorch能自动反向传播。 前向传播时,能够自动记录每个操作的拓扑顺序,反向传播时则可以自动反向传播。VariableVariable是一个类,对是对tensor的一个wrapper。 有三个属性.data, .grad和.creator。如果是第一个运算节点,显然.creator是空,.grad只有调用.backward时候才会有。 require_grad可以指定某个variable原创 2017-04-30 17:00:28 · 10579 阅读 · 4 评论 -
Pytorch入门学习(九)---detach()的作用(从GAN代码分析)
detach()的作用分析原创 2017-09-19 22:22:34 · 38626 阅读 · 10 评论 -
Pytorch源码安装(附加可能出现的问题解决)
源码安装一般源码安装就用anaconda,诡异的是,一般情况下按照官网的方法原创 2017-10-09 22:26:59 · 7213 阅读 · 0 评论 -
Pytorch入门学习(八)-----自定义层的实现(甚至不可导operation的backward写法)
pytorch自定义层,各种情况说明。原创 2017-10-25 20:36:48 · 23092 阅读 · 8 评论 -
Pytorch学习(十)---解读Neural Style代码
pytorch版的neural style解读原创 2017-10-26 17:40:02 · 4604 阅读 · 10 评论 -
Pytorch学习入门(一)--- 从torch7跳坑至pytorch --- Tensor
为什么入坑pytorch一般来说,入门一新坑,先会被众多“胡言乱语”所迷惑。于是我看了这些。。 1. ICLR2017的论文现在越来越多用pytorch了,而不是tensorflow了。ICLR-17最全盘点:PyTorch超越TensorFlow,三巨头Hinton、Bengio、LeCun论文被拒,GAN泛滥原创 2017-04-30 14:25:56 · 13148 阅读 · 0 评论