本文适用于深度学习新手的“入门指导系列”,也有适用于老司机的论文代码实现,包括 Attention Based CNN、A3C、WGAN、BERT等等。所有代码均按照所属技术领域分类,包括机器视觉/图像相关、自然语言处理相关、强化学习相关等等。所以如果你打算入手这风行一世的 PyTorch 技术,那么就快快收藏本文吧!或者关注github https://github.com/inessus/pytorch_awesome.git

PyTorch 是什么?

PyTorch即 Torch 的 Python 版本。Torch 是由 Facebook 发布的深度学习框架,因支持动态定义计算图,相比于 Tensorflow 使用起来更为灵活方便,特别适合中小型机器学习项目和深度学习初学者。但因为 Torch 的开发语言是Lua,导致它在国内一直很小众。所以,在千呼万唤下,PyTorch应运而生!PyTorch 继承了 Troch 的灵活特性,又使用广为流行的 Python 作为开发语言,所以一经推出就广受欢迎!

  • Vison 图像、视觉、CNN相关实现
  • Text NLP 机器翻译、问答系统
  • Speech语音
  • 时间序列处理
  • Gan 对抗生成网络、生成模型、GAN相关实现
  • RL 深度强化学习相关实现
  • 通用神经网络高级应用
  • 医疗的应用
  • 1 入门系列

    a 60-minute PyTorch官网推荐的由网友提供的60分钟教程,本系列教程的重点在于介绍PyTorch的基本原理,包括自动求导,神经网络,以及误差优化API Novices pytorch-examples 由网友提供的PyTorch教程,通过一些实例的方式,讲解PyTorch的基本原理。内容涉及Numpy、自动求导、参数优化、权重共享等 Contributors Ten minutes 知乎上“十分钟学习PyTorch“系列教程的源码 Contributors Official PyTorch Examples 官方提供的实例源码 Contributors pytorch-tutorial 据说是提供给深度学习科研者们的PyTorch教程←_←。教程中的每个实例的代码都控制在30行左右,简单易懂 Contributors playground PyTorch初学者的Playground,在这里针对一下常用的数据集,已经写好了一些模型,所以大家可以直接拿过来玩玩看,目前支持以下数据集的模型 Experts

    2 Vison 图像、视觉、CNN相关实现

    Attention 论文 "Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer" 的PyTorch实现 Contributors Wide ResNet 一个PyTorch实现的 ImageNet Classification Contributors 这个是 Convolutional Recurrent Neural Network (CRNN) 的 PyTorch 实现。CRNN 由一些CNN,RNN和CTC组成,常用于基于图像的序列识别任务,例如场景文本识别和OCR Experts scattering network 使用了“scattering network”的CNN实现,特别的构架提升了网络的效果 Contributors Conditional Similarity Networks》的PyTorch实现 Contributors MSG-Net MSG-Net 以及 Neural Style 的 PyTorch 实现 Contributors Big batch training 《Train longer, generalize better: closing the generalization gap in large batch training of neural networks》的 PyTorch 实现 Contributors CortexNet 一个使用视频训练的鲁棒预测深度神经网络 Contributors Quantum Chemistry 论文《Neural Message Passing for Quantum Chemistry》的PyTorch实现,好像是讲计算机视觉下的神经信息传递 Experts MUTAN 一个PyTorch实现的优秀视觉推理问答系统,是基于论文《MUTAN: Multimodal Tucker Fusion for Visual Question Answering》实现的。项目中有详细的配置使用方法说明 Contributors Clevr-IEP Facebook Research 论文《Inferring and Executing Programs for Visual Reasoning》的PyTorch实现,讲的是一个可以基于图片进行关系推理问答的网络 Contributors OpenNMT 开源的自然语言处理框架 Masters NeuralCoref 自然语言处理包spaCy的扩展,用于指代消解 Contributors img_classification_pk_pytorch Contributors SparseConvNet 流行稀疏卷积 Contributors Convolution_LSTM_pytorch 多层卷积LSTM模块 Contributors face-alignment 2D,3D面部识别库 Mastar

    3 Text NLP 机器翻译、问答系统

    RNN & NLP 以 RNN for NLP 为出发点的 PyTorch 基础教程,分为“RNNs for NLP”和“RNNs for timeseries data”两个部分 Master PyOpenNMT 一套由PyTorch实现的机器翻译系统 Master Negotiation Dialogues Facebook AI Research 论文《Deal or No Deal? End-to-End Learning for Negotiation Dialogues》的 PyTorch 实现 Experts Attention Google Research 著名论文《Attention is all you need》的PyTorch实现 Master 一种从图像中检索文字的方法,来自论文:《VSE++: Improved Visual-Semantic Embeddings》 Contributors 一个开放领域问答系统DrQA的PyTorch实现 Master Self-Attentive IBM 与 MILA 发表的《A Structured Self-Attentive Sentence Embedding》的开源实现 Contributors Google BERT的pytorch实现版本 Experts pytorch text pytorch官方文本处理包 Experts 监督和无监督词嵌入库 Experts nmtpytorch 神经机器翻译框架 Contributors LASER Contributors gensen 通过大规模多任务学习通用分布式句子表示 Contributors translate Experts pythia 可视问答系统 Experts UnsupervisedMT 无监督神经机器翻译 Experts jiant 语义表示工具包 Contributors InferSent Experts pytorch-semantic-segmentation Contributors RoIAlign.pytorch RolAlign预训练卷积网络 Contributors finetune 调优CNN Contributors detectorch Detectorch Contributors Augmentor 图形增益库 Master s2cnn This library contains a PyTorch implementation of the SO(3) equivariant CNNs for spherical signals (e.g. omnidirectional cameras, signals on the globe) Contributors PyTorchCV 计算机视觉的深度库 Contributors maskrcnn-benchmark maskrcnn-benchmark Master

    4. Speech语音

    FairSeq Facebook 在机器翻译系统中使用 CNN,以便将大规模并行处理的优势发挥出来。在 CNN 中,计算不依赖于之前时间的信息,因此每个计算都是独立的,可以并行起来 Master WaveNet WaveNet是一个端到端的TTS(text to speech)模型。它是一个生成模型,类似于早期的pixel RNN和Pixel CNN,声音元素是一个点一个点生成的。在WaveNet中最重要的概念就是带洞因果卷积(dialated causal convolutions)了。用来处理多对一问题,在语音生成等方面有效果 Contributors WaveNet WaveNet Contributors 时间卷积网络(Temporal Convolutional Nets, TCNs)作为 CNN 家族中的一员健将,拥有许多新特性,如今已经在诸多主要应用领域中击败了 RNN。看起来 RNN 可能要成为历史了 Experts trellisnet TCN的后续版本,用来处理时间序列 Contributors anuvada 使用PyTorch解释NLP的模型,揭开NLP处理过程的黑盒子 Contributors

    6. Gan 对抗生成网络、生成模型、GAN相关实现

    DiscoGAN 《Learning to Discover Cross-Domain Relations with Generative Adversarial Networks》的 PyTorch 实现 Experts 《Adversarial Generator-Encoder Networks》的 PyTorch 实现 Contributors CycleGAN pix2pix 图到图的翻译,著名的 CycleGAN 以及 pix2pix 的PyTorch 实现 Grandmaster GAN-weight-norm 《On the Effects of Batch and Weight Normalization in Generative Adversarial Networks》的 PyTorch 实现 Contributors

    7. RL 深度强化学习相关实现

    meta-optimizer 论文《Learning to learn by gradient descent by gradient descent》的PyTorch实现 Contributors OptNet 论文《Differentiable Optimization as a Layer in Neural Networks》的PyTorch实现 Contributors Task-based End-to-end 论文《Task-based End-to-end Model Learning》的实现 Contributors DiracNets 不使用“Skip-Connections”而搭建特别深的神经网络的方法 Experts 这是一个能够检测“分布不足”(Out-of-Distribution)样本的方法的PyTorch实现。当“true positive rate”为95%时,该方法将DenseNet(适用于CIFAR-10)的“false positive rate”从34.7%降至4.3% Experts FreezeOut 一种使用“progressively freezing layers”来加速神经网络训练的方法 Contributors Efficient densenet pytorch DenseNets的PyTorch实现,优化以节省GPU内存 Experts

    9. 医疗的应用

    beauty-net A simple, flexible, and extensible template for PyTorch. It's beautiful. Contributors OpenChem Contributors torchani Accurate Neural Network Potential Contributors PyTorch-LBFGS A PyTorch implementation of L-BFGS Experts gpytorch 高校的高斯处理模块 Experts hessian hessian Contributors 速度在深度学习研究 Contributors nonechucks datasets, samplers, and transforms Contributors torchstat Model analyzer in PyTorch Contributors QNNPACK Quantized Neural Network PACKage Contributors torchdiffeq Differentiable ODE Contributors redner A differentiable Monte Carlo path tracer Contributors pixyz a library for developing deep generative models in a more concise, intuitive and extendable way Contributors euclidesdb A multi-model machine learning feature embedding database Contributors

    参考文献: