本文适用于深度学习新手的“入门指导系列”,也有适用于老司机的论文代码实现,包括 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 入门系列
简称 | 功能 | 分级 |
---|---|---|
PyTorch Tutorials | 著名的“莫烦”PyTorch系列教程的源码 | Contributors |
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相关实现
简称 | 功能 | 分级 |
---|---|---|
FCN | Fully Convolutional Networks实现 | Contributors |
Attention | 论文 "Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer" 的PyTorch实现 | Contributors |
Wide ResNet | 一个PyTorch实现的 ImageNet Classification | Contributors |
CRNN | 这个是 Convolutional Recurrent Neural Network (CRNN) 的 PyTorch 实现。CRNN 由一些CNN,RNN和CTC组成,常用于基于图像的序列识别任务,例如场景文本识别和OCR | Experts |
scattering network | 使用了“scattering network”的CNN实现,特别的构架提升了网络的效果 | Contributors |
CSNs | 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 机器翻译、问答系统
简称 | 功能 | 分级 |
---|---|---|
AllenNLP | 开源的NLP处理系统 | Master |
PyTorch-NLP | 文本利用工具库和数据集 | Experts |
quick-nlp | 基于FastAI的NLP库 | Contributors |
ForNLP | 一套以 NLP 为主题的 PyTorch 基础教程。本教程使用Ipython Notebook编写,看起来很直观,方便学习 | Expert |
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 | 一种从图像中检索文字的方法,来自论文:《VSE++: Improved Visual-Semantic Embeddings》 | Contributors |
DrQA | 一个开放领域问答系统DrQA的PyTorch实现 | Master |
Self-Attentive | IBM 与 MILA 发表的《A Structured Self-Attentive Sentence Embedding》的开源实现 | Contributors |
BERT | Google BERT的pytorch实现版本 | Experts |
pytorch text | pytorch官方文本处理包 | Experts |
MUSE | 监督和无监督词嵌入库 | 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语音
简称 | 功能 | 分级 |
---|---|---|
audio | 官方语音处理基础包 | Contributors |
LOOP | 文本到语音的生成 | Experts |
TTS | 文本到语音的合成 | Experts |
SST | 端到端的语音到文本的生成框架 | Contributors |
Tacotron | 端到端的语音到文本的生成 | Contributors |
pyannote-audio | 用于说话人日记:语音活动检测,说话者变化检测,扬声器嵌入 | Contributors |
espnet | 端到端的语音处理工具包 | Contributors |
pt-styletransfer | 风格转换 | Contributors |
OpenFacePytorch | OpenFace开源版本 | Contributors |
5. 时间序列处理
简称 | 功能 | 分级 |
---|---|---|
Seq2Seq | pytorch版本的Seq2Seq的基本模型 | Contributors |
FairSeq | Facebook 在机器翻译系统中使用 CNN,以便将大规模并行处理的优势发挥出来。在 CNN 中,计算不依赖于之前时间的信息,因此每个计算都是独立的,可以并行起来 | Master |
WaveNet | WaveNet是一个端到端的TTS(text to speech)模型。它是一个生成模型,类似于早期的pixel RNN和Pixel CNN,声音元素是一个点一个点生成的。在WaveNet中最重要的概念就是带洞因果卷积(dialated causal convolutions)了。用来处理多对一问题,在语音生成等方面有效果 | Contributors |
WaveNet | WaveNet | Contributors |
TCN | 时间卷积网络(Temporal Convolutional Nets, TCNs)作为 CNN 家族中的一员健将,拥有许多新特性,如今已经在诸多主要应用领域中击败了 RNN。看起来 RNN 可能要成为历史了 | Experts |
trellisnet | TCN的后续版本,用来处理时间序列 | Contributors |
anuvada | 使用PyTorch解释NLP的模型,揭开NLP处理过程的黑盒子 | Contributors |
6. Gan 对抗生成网络、生成模型、GAN相关实现
简称 | 功能 | 分级 |
---|---|---|
GANs | 一个非常简单的由PyTorch实现的对抗生成网络 | Experts |
DCGAN & WGAN | 由中国网友实现的DCGAN和WGAN,代码很简洁 | Contributors |
WGAN | WGAN的官方PyTorch实现 | Master |
DiscoGAN | 《Learning to Discover Cross-Domain Relations with Generative Adversarial Networks》的 PyTorch 实现 | Experts |
AGE | 《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 深度强化学习相关实现
简称 | 功能 | 分级 |
---|---|---|
Reinforcement | 多种使用PyTorch实现强化学习的方法 | Contributors |
VIN | Value Iteration Networks (VIN) 的PyTorch实现 | Contributors |
A3C | Adavantage async Actor-Critic (A3C) 的PyTorch实现 | Contributors |
8. 通用神经网络高级应用
简称 | 功能 | 分级 |
---|---|---|
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 |
ODIN | 这是一个能够检测“分布不足”(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. 医疗的应用
简称 | 功能 | 分级 |
---|---|---|
medicaltorch | Contributors |
10. 概率生成库
简称 | 功能 | 分级 |
---|---|---|
ptstat | 概率编程和统计库 | Contributors |
pyro | 深度概率软件库,以帮助简化其交通服务的预测和优化 | Master |
probtorch | 深度生成模型库 | Contributors |
paysage | 无监督学习生成模型 | Contributors |
pyvarinf: | 微分推理贝叶斯模型 | Contributors |
pyprob | 概率编程 | Contributors |
mia | 针对ML模型的推理攻击 | Contributors |
11. 工具库
简称 | 功能 | 分级 |
---|---|---|
pytorch extras | 特征提取 | Contributors |
functional zoo | 预定义模型库 | Contributors |
torch-sampling | 内存采样库 | Experts |
torchcraft-py | StarCraft API | Contributors |
aorun | 以PyTorch为后端的库 | Contributors |
logger | 日志库 | Contributors |
docset | 制作你自己的Docset文档 | Contributors |
torch2pytorch | 转换torch t7模型成pytorch模型 | Contributors |
pretrained-models | 预训练模型 | Masters |
fft | 快速傅里叶变换FFTs | Contributors |
caffe2torch2pytorch | caffe换换pytorch | Novice |
extension | 哈达姆变换 | Contributors |
tensorboardX | pytorch版本的tensorboard | Grandmaster |
gpytorch | 高斯处理库 | Contributors |
spotlight | 深度推荐库 | Experts |
cns | 压缩网络搜索 | Novice |
pyinn | 用CuPy编写的CUDA操作 | Contributors |
inferno | 工具库:图形、子模块 | Novice |
pytorch-fitmodule | 超级简单拟合库 | Novice |
skorch | scikit-learn兼容的神经网络库 | Experts |
pytorch2caffe | caffe pytorch转换 | Contributors |
pytorch2caffe | pytorch转换caffe | Novice |
pytorch-tools | 工具 | Novice |
sru | 训练RNN和CNN一样快 | Experts |
Torch7CoreML | Contributors | |
PyTorch-Encoding | 深度文本编码网络 | Contributors |
ctc | Connectionist Temporal Classification | Novice |
candlegp | 高斯处理 | Novice |
dpwa | 平均分布式学习 | Novice |
dni-pytorch | Decoupled Neural Interfaces | Novice |
ignite | Ignite是一个PyTorch高级库 | Experts |
Arnold | Arnold一个DOOM代理 | Experts |
pytorch-mcn | MatConvNet到PyTorch转换 | Contributors |
SimpleFasterRCNN-PyTorch | 简化的Faster R-CNN | Experts |
generative_zoo | 生成模型库 | Novice |
pytorchviz | 可视化执行图 | Contributors |
cogitare | 深度学习框架 | Novice |
pydlt | 深度学习工具栏 | Novice |
semi-VAE | 半监督VAE生成模型 | Novice |
pytorch_cluster | 优化图集群算法 | Novice |
ANC | 神经编译器 | Novice |
caffemodel2pytorch | Caffe模块转换PyTorch | Novice |
extension-cpp | C++扩展 | Novice |
pytoune | Keras样子的框架 | Novice |
jetson-reinforcement | 深度强化学习库 | Contributors |
matchbox | minibatches语法糖 | Contributors |
torch-two-sample | 测试例子 | Contributors |
pytorch-summary | 查看模块汇总 | Contributors |
mpl.pytorch | MaxPoolingLoss的执行函数 | Contributors |
scVI-dev | scVI 工程 | Experts |
ELF | 游戏研究平台 | Experts |
joint-vae | JointVAE实现 | Contributors |
SLM-Lab | 深度增强学习 | Contributors |
SNNs | SNNs | Contributors |
pro_gan_pytorch | ProGAN | Experts |
pytorch_geometric | 地理信息扩展库 | Contributors |
torchplus | 执行加操作,返回模型序列 | Novice |
lagom | 轻量的增强学习算法 | Contributors |
torchbearer | 模型训练库 | Contributors |
pytorch-maml-rl | Model-Agnostic Meta-Learning | Contributors |
NALU | NALU | Contributors |
QuCumber | A Quantum Calculator Used for Many-body Eigenstate Reconstruction | Contributors |
magnet | 深度工程脚手架 | Contributors |
opencv_transforms | OpenCV 增益平台 | Contributors |
fastai | 深度学习库 | Grandmaster |
pytorch-dense-correspondence | Dense Object Nets | Contributors |
colorization-pytorch | Interactive Deep Colorization | Contributors |
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 |
vel | 速度在深度学习研究 | 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 |