![](/style/images/good.png)
![](/style/images/bad.png)
Pytorch(一)
source link: http://antkillerfarm.github.io/ai/2018/01/16/pytorch.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Pytorch
Torch是一个非常老牌的DL框架,它的历史可以追溯至2003年,几乎是现存框架中最古老的了。
http://torch.ch/
Torch采用Lua语言编写,这和目前ML/DL界主流的python有较大差别。
因此,Facebook和Uber联合于2016年推出了Torch的python版本——Pytorch。由于Pytorch在开发者社区更受欢迎,短短时间它的开发进度就超越了Torch,成为了2017年DL的年度语言。
https://pytorch.org/
和TensorFlow主要面向工业界不同,Pytorch的抽象更为傻瓜,类似于Keras,但也提供了TensorFlow式的基本运算功能,更适合学术界的使用。当然了,它的效率和可扩展性,是不如TensorFlow的。
https://pytorch.org/docs/stable/index.html
官网教程:
http://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html
还有一个非官网的教程,一个韩国人写的:
https://github.com/yunjey/pytorch-tutorial
Model Zoo(非官方):
https://github.com/Cadene/pretrained-models.pytorch
官方书籍:
https://pytorch.org/deep-learning-with-pytorch-thank-you
Pytorch的安装方法在官网首页就可查到,非常方便。
https://pytorch.org/get-started/locally/
这是我的平台的安装方法:
pip3 install http://download.pytorch.org/whl/cpu/torch-0.4.1-cp36-cp36m-linux_x86_64.whl
pip3 install torchvision
import torch
torch.cuda.is_available()
https://zhuanlan.zhihu.com/p/44068797
Windows装TensorFlow+MXNet+PyTorch
Lenet+MNIST+GPU:
https://github.com/antkillerfarm/antkillerfarm_crazy/tree/master/python/ml/pytorch/mnist_gpu.py
https://github.com/CSAILVision/semantic-segmentation-pytorch
Semantic Segmentation PyTorch:PyTorch上最好的语义分割工具包
https://github.com/PetrochukM/PyTorch-NLP
支持快速成型的深度学习NLP工具包
fastai
fastai和Pytorch的关系,类似于Keras和Tensorflow。
https://mp.weixin.qq.com/s/kEC-5huq6cFjd1iPjSuK-g
5行代码秀碾压,比Keras还好用的fastai来了,尝鲜PyTorch 1.0必备伴侣
QNNPACK
QNNPACK (Quantized Neural Networks PACKage) 是 Marat Dukhan (Facebook) 开发的专门用于量化神经网络计算的加速库。其卓越的性能表现一经开源就击败了几乎全部已公开的加速算法,甚至直至今日(2019 年中)。
它已经集成到pytorch中。
https://github.com/pytorch/qnnpack
https://mp.weixin.qq.com/s/30cxIX9aKIpELC8H4_k8Gg
比TFLite快2倍!FB开源移动深度学习优化库QNNPACK
https://zhuanlan.zhihu.com/p/81026071
神经网络加速库QNNPACK实现揭秘
经常会看到后缀名为.pt
,.pth
,.pkl
的pytorch模型文件,其实它们并不是在格式上有区别,只是后缀不同而已(仅此而已)。.pkl
文件是python里面保存文件的一种二进制格式,用pickle库去加载pkl文件或pth文件,效果都是一样的。
https://www.jianshu.com/p/e37e4e49dbc1
pytorch模型保存方式(.pt, .pth, .pkl)
https://github.com/antkillerfarm/antkillerfarm_crazy/blob/master/python/ml/pytorch/pytorch_hook.py
上面的示例包含以下内容:
1.如何使用hook打印中间层的输出。
2.如何截取模型的一部分,并执行。
3.量化模型的输入和输出有一个Quantize和Dequantize的过程。而且这两个过程由于是后期加入的,因此在print(model)
中被排在最后。可见model结构中的顺序,并不是真正的执行顺序的拓扑排序。
https://blog.csdn.net/Pl_Sun/article/details/106978171
PyTorch中的model.modules(), model.children(), model.named_children(), model.parameters(), model.nam…
https://www.jianshu.com/p/d2a066e05078
pytorch拆分已定义的网络结构(slicing network)
PyTorch的的代码主要由C10、ATen、torch三大部分组成的。其中:
-
C10,来自于Caffe Tensor Library的缩写。这里存放的都是最基础的Tensor库的代码,可以运行在服务端和移动端。PyTorch目前正在将代码从ATen/core目录下迁移到C10中。C10的代码有一些特殊性,体现在这里的代码除了服务端外还要运行在移动端,因此编译后的二进制文件大小也很关键,因此C10目前存放的都是最核心、精简的、基础的Tensor函数和接口。
-
ATen,来自于A TENsor library for C++11的缩写;PyTorch的C++ tensor library。ATen部分有大量的代码是来声明和定义Tensor运算相关的逻辑的,除此之外,PyTorch还使用了aten/src/ATen/gen.py来动态生成一些ATen相关的代码。
-
Torch,部分代码仍然在使用以前的快要进入历史博物馆的Torch开源项目。
CNN format
Pytorch默认支持NCHW格式的数据,这与Caffe相同。
Pytorch目前已经和Caffe2合并,所以相关op的代码在caffe2/operators下。一般XXX_op.h包含了CPU实现,而XXX_op.cu包含GPU实现。
Conv Backprop
caffe2/operators/conv_op_impl.h: ConvGradientOp::RunOnDeviceWithOrderNCHW
caffe2/utils/math.h: Gemm
caffe2/utils/math_cpu.cc: Gemm
Eigen or cblas_sgemm
// calc the cost of ConvGradient
caffe2/operators/conv_gradient_op.cc: CostInferenceForConvGradient
// cuDNN
cudnnGetConvolutionBackwardDataAlgorithm_v7
https://mp.weixin.qq.com/s/rCocDz2kW2tpkZel5Wh-hw
Pytorch网络结构可视化
https://mp.weixin.qq.com/s/0VNTBY1KrOXBldRoi1Ky5A
Pytorch autograd,backward详解
https://zhuanlan.zhihu.com/p/55966063
PyTorch ATen代码的动态生成
https://zhuanlan.zhihu.com/p/56924766
PyTorch Autograd代码的动态生成
tensorboardX
Pytorch并没有一个比较好的可视化库。所谓的torchvision实际上是一个用于CV领域的工具库,和可视化一点关系都没有。
而tensorboardX项目,提供了导出Pytorch模型到tensorboard的功能。这样,Pytorch项目也可以使用tensorboard作为可视化工具。
https://github.com/lanpa/tensorboardX
https://tensorboardx.readthedocs.io/en/latest/tensorboard.html
https://mp.weixin.qq.com/s/Zxoug2sMoWsOWnZPCQ22ug
PyTorch模型训练特征图可视化(TensorboardX)
torchinfo
torchinfo提供了类似TF的model.summary()
的功能。
https://github.com/TylerYep/torchinfo
在torchinfo之前还有一个叫torch-summary的项目也提供了类似功能。而torchinfo正是它的后继者。
Torch Vision
https://github.com/pytorch/vision
pytorch支持scripting/trace两种模式动态图转静态图的方法。
https://blog.csdn.net/ljp1919/article/details/102514357
在生产环境中基于PyTorch的C++API运行模型-以图像分类为例
https://blog.csdn.net/xxradon/article/details/86504906
pytorch JIT浅解析
TorchServe
TorchServe是由AWS和Facebook合作开发的PyTorch模型服务库。
https://github.com/pytorch/serve
https://mp.weixin.qq.com/s/AtuSS5paEZ_0RvpyLEJk2g
Facebook联合AWS推出PyTorch模型服务框架:可让模型快速投入生产
https://zhuanlan.zhihu.com/p/362985275
Pytorch获取中间层输出的几种方法
https://zhuanlan.zhihu.com/p/267800207
PyTorch中Hook的简单使用
https://zhuanlan.zhihu.com/p/87853615
pytorch的hook机制之register_forward_hook
https://zhuanlan.zhihu.com/p/152314451
hook技术
https://mp.weixin.qq.com/s/zhkaenFdnB5KgaEYb-XDEQ
从基础概念到实现,小白如何快速入门PyTorch
https://mp.weixin.qq.com/s/AMZFvmzo4pQ1m7QeaRpAdA
PyTorch资源列表:450个NLP/CV/SP、论文实现、教程、示例
https://mp.weixin.qq.com/s/dzDkpUHo4CKqq8i1pyYO2w
60题PyTorch简易入门指南
https://mp.weixin.qq.com/s/7at6y2NcYaxGGN8syxlccA
PyTorch Cookbook
https://mp.weixin.qq.com/s/RKtyNpIxSxFNfOSyHPOiGw
深度学习PyTorch的教程代码
https://mp.weixin.qq.com/s/i70pT7pQpdoCXXhXq2_MEw
四天速成!香港科技大学PyTorch教程
https://mp.weixin.qq.com/s/7Wr70NFi4pxvSpRr2Q1zsQ
强大的PyTorch:10分钟让你了解深度学习领域新流行的框架
https://mp.weixin.qq.com/s/y5LLraGWuYUbOted9N-GWQ
如何从TensorFlow转入PyTorch
https://mp.weixin.qq.com/s/KRuEuAOXU2fpSNyOJW4bpA
Yoshua Bengio实验室MILA开放面向初学者的PyTorch教程
https://mp.weixin.qq.com/s/QjhokXDXuglJajULKigt1g
PyTorch手把手深度学习教程系列完整版
https://mp.weixin.qq.com/s/FGL1vYaXvv-NCcq0vithZw
深度学习框架:PyTorch入门与实践
https://github.com/jinfagang/pytorch_name_net
PyTorch人工智能自动取名
https://mp.weixin.qq.com/s/UGGrK5LwOP2aLVTz0AGMDw
如何通过PyTorch实现Tensor
https://mp.weixin.qq.com/s/9X77MPcQOQPwZaOVIVfo9Q
用PyTorch搭建抽取式摘要系统
https://mp.weixin.qq.com/s/rORvudwdbnmSvzFhM1gVOA
斯坦福大学CS-224n课程中深度NLP模型的PyTorch实现
https://mp.weixin.qq.com/s/Chk-QAPhIXlIeguT4hS6kg
对比ResNet:超深层网络DiracNet的PyTorch实现
https://mp.weixin.qq.com/s/BP9MToKcE1MJmQTQv2UUZQ
Pytorch开源VQA神经网络模块,让你快速完成看图问答
https://mp.weixin.qq.com/s/QqRjvWMMKosPh9qfU61BzQ
浅谈将Pytorch模型从CPU转换成GPU
https://mp.weixin.qq.com/s/aMfPBl6E5SxckQdSAGTkBg
Pytorch教程:Facebook发布的LR-GAN如何生成图像?
https://mp.weixin.qq.com/s/BjSx3tSQ2Xa0ja_j6dA7eA
Pytorch中的DataLoader的相关记录
https://mp.weixin.qq.com/s/vx0txFUf10QDBlldz0VJmg
AI插画师:如何用基于PyTorch的生成对抗网络生成动漫头像?
https://mp.weixin.qq.com/s/xHXsMxMTdnCWkuwzHs_7Cg
深度学习实验流程及PyTorch提供的解决方案
https://mp.weixin.qq.com/s/HPRUQSsUdk3rXBBl_GpFMw
对抗自编码器PyTorch手把手实战系列——PyTorch实现自编码器
https://mp.weixin.qq.com/s/5sY_IzwIz-lbDLtWJM-GRQ
PyTorch实例:用ResNet进行交通标志分类
https://mp.weixin.qq.com/s/zN3k51g9gjQvc43AH-ypGA
如何通过PyTorch上手Tensor Comprehensions?
https://mp.weixin.qq.com/s/BsMwZC3IoXA58OybZ3aYcg
pytorch中如何处理RNN输入变长序列padding
https://mp.weixin.qq.com/s/abd62HNlen9sepH3CrmpGg
PyTorch为何如此高效好用?来探寻深度学习框架的内部架构
https://mp.weixin.qq.com/s/OMjfck4jlMneGZ1NJxbjKQ
PyTorch有哪些坑/bug?
https://mp.weixin.qq.com/s/UykIKAeKB-0eqk6UqvXwXA
对抗自编码器PyTorch手把手实战系列——PyTorch实现对抗自编码器
https://mp.weixin.qq.com/s/E8RMSXVZucSGQJxFdtMgkg
PyTorch实例:用ResNet进行交通标志分类
https://mp.weixin.qq.com/s/_hbuk9nZaLoNSZ5AnDnELg
使用PyTorch从零开始构建Elman循环神经网络
https://mp.weixin.qq.com/s/FQxSYjyR1U3TIinSShnOfg
从头开始了解PyTorch的简单实现
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK