原文地址: http://www.sohu.com/a/164171974_741733
本文收集了大量基于 PyTorch 實現(xiàn)的代碼鏈接,其中有適用于深度學習新手的“入門指導系列”宪肖,也有適用于老司機的論文代碼實現(xiàn),包括 Attention Based CNN、A3C、WGAN等等。所有代碼均按照所屬技術(shù)領(lǐng)域分類臀防,包括機器視覺/圖像相關(guān)、自然語言處理相關(guān)辫呻、強化學習相關(guān)等等清钥。所以如果你打算入手這風行一世的 PyTorch 技術(shù),那么就快快收藏本文吧放闺!
PyTorch 是什么?
PyTorch即 Torch 的 Python 版本缕坎。Torch 是由 Facebook 發(fā)布的深度學習框架怖侦,因支持動態(tài)定義計算圖,相比于 Tensorflow 使用起來更為靈活方便,特別適合中小型機器學習項目和深度學習初學者匾寝。但因為 Torch 的開發(fā)語言是Lua搬葬,導致它在國內(nèi)一直很小眾。所以艳悔,在千呼萬喚下急凰,PyTorch應(yīng)運而生!PyTorch 繼承了 Troch 的靈活特性猜年,又使用廣為流行的 Python 作為開發(fā)語言抡锈,所以一經(jīng)推出就廣受歡迎!
目錄:
入門系列教程
入門實例
圖像乔外、視覺床三、CNN相關(guān)實現(xiàn)
對抗生成網(wǎng)絡(luò)、生成模型杨幼、GAN相關(guān)實現(xiàn)
機器翻譯撇簿、問答系統(tǒng)、NLP相關(guān)實現(xiàn)
先進視覺推理系統(tǒng)
深度強化學習相關(guān)實現(xiàn)
通用神經(jīng)網(wǎng)絡(luò)高級應(yīng)用
入門系列教程
PyTorch Tutorials
https://github.com/MorvanZhou/PyTorch-Tutorial.git
著名的“莫煩”PyTorch系列教程的源碼差购。
Deep Learning with PyTorch: a 60-minute blitz
http://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html
PyTorch官網(wǎng)推薦的由網(wǎng)友提供的60分鐘教程四瘫,本系列教程的重點在于介紹PyTorch的基本原理,包括自動求導欲逃,神經(jīng)網(wǎng)絡(luò)莲组,以及誤差優(yōu)化API。
Simple examples to introduce PyTorch
https://github.com/jcjohnson/pytorch-examples.git
由網(wǎng)友提供的PyTorch教程暖夭,通過一些實例的方式锹杈,講解PyTorch的基本原理。內(nèi)容涉及Numpy迈着、自動求導竭望、參數(shù)優(yōu)化、權(quán)重共享等裕菠。
入門實例
Ten minutes pyTorch Tutorial
https://github.com/SherlockLiao/pytorch-beginner.git
知乎上“十分鐘學習PyTorch“系列教程的源碼咬清。
Official PyTorch Examples
https://github.com/pytorch/examples
官方提供的實例源碼,包括以下內(nèi)容:
MNIST Convnets
Word level Language Modeling using LSTM RNNs
Training Imagenet Classifiers with Residual Networks
Generative Adversarial Networks (DCGAN)
Variational Auto-Encoders
Superresolution using an efficient sub-pixel convolutional neural network
Hogwild training of shared ConvNets across multiple processes on MNIST
Training a CartPole to balance in OpenAI Gym with actor-critic
Natural Language Inference (SNLI) with GloVe vectors, LSTMs, and torchtext
Time sequence prediction - create an LSTM to learn Sine waves
PyTorch Tutorial for Deep Learning Researchers
https://github.com/yunjey/pytorch-tutorial.git
據(jù)說是提供給深度學習科研者們的PyTorch教程←_←奴潘。教程中的每個實例的代碼都控制在30行左右旧烧,簡單易懂,內(nèi)容如下:
PyTorch Basics
Linear Regression
Logistic Regression
Feedforward Neural Network
Convolutional Neural Network
Deep Residual Network
Recurrent Neural Network
Bidirectional Recurrent Neural Network
Language Model (RNN-LM)
Generative Adversarial Network
Image Captioning (CNN-RNN)
Deep Convolutional GAN (DCGAN)
Variational Auto-Encoder
Neural Style Transfer
TensorBoard in PyTorch
PyTorch-playground
https://github.com/aaron-xichen/pytorch-playground.git
PyTorch初學者的Playground画髓,在這里針對一下常用的數(shù)據(jù)集掘剪,已經(jīng)寫好了一些模型,所以大家可以直接拿過來玩玩看奈虾,目前支持以下數(shù)據(jù)集的模型夺谁。
mnist, svhn
cifar10, cifar100
stl10
alexnet
vgg16, vgg16_bn, vgg19, vgg19_bn
resnet18, resnet34, resnet50, resnet101, resnet152
squeezenet_v0, squeezenet_v1
inception_v3
圖像廉赔、視覺、CNN相關(guān)實現(xiàn)
PyTorch-FCN
https://github.com/wkentaro/pytorch-fcn.git
FCN(Fully Convolutional Networks implemented) 的PyTorch實現(xiàn)匾鸥。
Attention Transfer
https://github.com/szagoruyko/attention-transfer.git
論文 “Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer” 的PyTorch實現(xiàn)蜡塌。
Wide ResNet model in PyTorch
https://github.com/szagoruyko/functional-zoo.git
一個PyTorch實現(xiàn)的 ImageNet Classification 。
CRNN for image-based sequence recognition
https://github.com/bgshih/crnn.git
這個是 Convolutional Recurrent Neural Network (CRNN) 的 PyTorch 實現(xiàn)勿负。CRNN 由一些CNN馏艾,RNN和CTC組成,常用于基于圖像的序列識別任務(wù)奴愉,例如場景文本識別和OCR琅摩。
Scaling the Scattering Transform: Deep Hybrid Networks
https://github.com/edouardoyallon/pyscatwave.git
使用了“scattering network”的CNN實現(xiàn),特別的構(gòu)架提升了網(wǎng)絡(luò)的效果躁劣。
Conditional Similarity Networks (CSNs)
https://github.com/andreasveit/conditional-similarity-networks.git
《Conditional Similarity Networks》的PyTorch實現(xiàn)迫吐。
Multi-style Generative Network for Real-time Transfer
https://github.com/zhanghang1989/PyTorch-Style-Transfer.git
MSG-Net 以及 Neural Style 的 PyTorch 實現(xiàn)。
Big batch training
https://github.com/eladhoffer/bigBatch.git
《Train longer, generalize better: closing the generalization gap in large batch training of neural networks》的 PyTorch 實現(xiàn)账忘。
CortexNet
https://github.com/e-lab/pytorch-CortexNet.git
一個使用視頻訓練的魯棒預測深度神經(jīng)網(wǎng)絡(luò)志膀。
Neural Message Passing for Quantum Chemistry
https://github.com/priba/nmp_qc.git
論文《Neural Message Passing for Quantum Chemistry》的PyTorch實現(xiàn),好像是講計算機視覺下的神經(jīng)信息傳遞鳖擒。
對抗生成網(wǎng)絡(luò)溉浙、生成模型、GAN相關(guān)實現(xiàn)
Generative Adversarial Networks (GANs) in PyTorch
https://github.com/devnag/pytorch-generative-adversarial-networks.git
一個非常簡單的由PyTorch實現(xiàn)的對抗生成網(wǎng)絡(luò)
DCGAN & WGAN with Pytorch
https://github.com/chenyuntc/pytorch-GAN.git
由中國網(wǎng)友實現(xiàn)的DCGAN和WGAN蒋荚,代碼很簡潔戳稽。
Official Code for WGAN
https://github.com/martinarjovsky/WassersteinGAN.git
WGAN的官方PyTorch實現(xiàn)。
DiscoGAN in PyTorch
https://github.com/carpedm20/DiscoGAN-pytorch.git
《Learning to Discover Cross-Domain Relations with Generative Adversarial Networks》的 PyTorch 實現(xiàn)期升。
Adversarial Generator-Encoder Network
https://github.com/DmitryUlyanov/AGE.git
《Adversarial Generator-Encoder Networks》的 PyTorch 實現(xiàn)惊奇。
CycleGAN and pix2pix in PyTorch
https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix.git
圖到圖的翻譯,著名的 CycleGAN 以及 pix2pix 的PyTorch 實現(xiàn)播赁。
Weight Normalized GAN
https://github.com/stormraiser/GAN-weight-norm.git
《On the Effects of Batch and Weight Normalization in Generative Adversarial Networks》的 PyTorch 實現(xiàn)颂郎。
機器翻譯、問答系統(tǒng)容为、NLP相關(guān)實現(xiàn)
DeepLearningForNLPInPytorch
https://github.com/rguthrie3/DeepLearningForNLPInPytorch.git
一套以 NLP 為主題的 PyTorch 基礎(chǔ)教程乓序。本教程使用Ipython Notebook編寫,看起來很直觀坎背,方便學習替劈。
Practial Pytorch with Topic RNN & NLP
https://github.com/spro/practical-pytorch
以 RNN for NLP 為出發(fā)點的 PyTorch 基礎(chǔ)教程,分為“RNNs for NLP”和“RNNs for timeseries data”兩個部分得滤。
PyOpenNMT: Open-Source Neural Machine Translation
https://github.com/OpenNMT/OpenNMT-py.git
一套由PyTorch實現(xiàn)的機器翻譯系統(tǒng)陨献。(包含,Attention Model)
Deal or No Deal? End-to-End Learning for Negotiation Dialogues
https://github.com/facebookresearch/end-to-end-negotiator.git
Facebook AI Research 論文《Deal or No Deal? End-to-End Learning for Negotiation Dialogues》的 PyTorch 實現(xiàn)耿戚。
Attention is all you need: A Pytorch Implementation
https://github.com/jadore801120/attention-is-all-you-need-pytorch.git
Google Research 著名論文《Attention is all you need》的PyTorch實現(xiàn)湿故。Attention Model(AM)阿趁。
Improved Visual Semantic Embeddings
https://github.com/fartashf/vsepp.git
一種從圖像中檢索文字的方法膜蛔,來自論文:《VSE++: Improved Visual-Semantic Embeddings》坛猪。
Reading Wikipedia to Answer Open-Domain Questions
https://github.com/facebookresearch/DrQA.git
一個開放領(lǐng)域問答系統(tǒng)DrQA的PyTorch實現(xiàn)。
Structured-Self-Attentive-Sentence-Embedding
https://github.com/ExplorerFreda/Structured-Self-Attentive-Sentence-Embedding.git
IBM 與 MILA 發(fā)表的《A Structured Self-Attentive Sentence Embedding》的開源實現(xiàn)皂股。
先進視覺推理系統(tǒng)
Visual Question Answering in Pytorch
https://github.com/Cadene/vqa.pytorch.git
一個PyTorch實現(xiàn)的優(yōu)秀視覺推理問答系統(tǒng)墅茉,是基于論文《MUTAN: Multimodal Tucker Fusion for Visual Question Answering》實現(xiàn)的。項目中有詳細的配置使用方法說明呜呐。
Clevr-IEP
https://github.com/facebookresearch/clevr-iep.git
Facebook Research 論文《Inferring and Executing Programs for Visual Reasoning》的PyTorch實現(xiàn)就斤,講的是一個可以基于圖片進行關(guān)系推理問答的網(wǎng)絡(luò)。
深度強化學習相關(guān)實現(xiàn)
Deep Reinforcement Learning withpytorch & visdom
https://github.com/onlytailei/pytorch-rl.git
多種使用PyTorch實現(xiàn)強化學習的方法蘑辑。
Value Iteration Networks in PyTorch
https://github.com/onlytailei/Value-Iteration-Networks-PyTorch.git
Value Iteration Networks (VIN) 的PyTorch實現(xiàn)洋机。
A3C in PyTorch
https://github.com/onlytailei/A3C-PyTorch.git
Adavantage async Actor-Critic (A3C) 的PyTorch實現(xiàn)。
通用神經(jīng)網(wǎng)絡(luò)高級應(yīng)用
PyTorch-meta-optimizer
https://github.com/ikostrikov/pytorch-meta-optimizer.git
論文《Learning to learn by gradient descent by gradient descent》的PyTorch實現(xiàn)洋魂。
OptNet: Differentiable Optimization as a Layer in Neural Networks
https://github.com/locuslab/optnet.git
論文《Differentiable Optimization as a Layer in Neural Networks》的PyTorch實現(xiàn)绷旗。
Task-based End-to-end Model Learning
https://github.com/locuslab/e2e-model-learning.git
論文《Task-based End-to-end Model Learning》的PyTorch實現(xiàn)。
DiracNets
https://github.com/szagoruyko/diracnets.git
不使用“Skip-Connections”而搭建特別深的神經(jīng)網(wǎng)絡(luò)的方法副砍。
ODIN: Out-of-Distribution Detector for Neural Networks
https://github.com/ShiyuLiang/odin-pytorch.git
這是一個能夠檢測“分布不足”(Out-of-Distribution)樣本的方法的PyTorch實現(xiàn)衔肢。當“true positive rate”為95%時,該方法將DenseNet(適用于CIFAR-10)的“false positive rate”從34.7%降至4.3%豁翎。
Accelerate Neural Net Training by Progressively Freezing Layers
https://github.com/ajbrock/FreezeOut.git
一種使用“progressively freezing layers”來加速神經(jīng)網(wǎng)絡(luò)訓練的方法角骤。
Efficient_densenet_pytorch
https://github.com/gpleiss/efficient_densenet_pytorch.git
DenseNets的PyTorch實現(xiàn),優(yōu)化以節(jié)省GPU內(nèi)存心剥。