暑假即將到來,不用來充電學習豈不是虧大了。
有這么一份干貨,匯集了機器學習架構和模型的經典知識點,還有各種TensorFlow和PyTorch的Jupyter Notebook筆記資源,地址都在,無需等待即可取用。
除了取用方便,這份名為Deep Learning Models的資源還尤其全面。
針對每個細分知識點的介紹還尤其全面的,比如在卷積神經網絡部分,作者就由淺及深分別介紹了AlexNet、VGG、ResNet等。
干貨發布后,在GitHub短時間獲得了6000+顆星星,迅速聚集起大量人氣。
圖靈獎得主、AI大牛Yann LeCun也強烈推薦,夸贊其為一份不錯的PyTorch和TensorFlow Jupyter筆記本推薦!
這份資源的作者來頭也不小,他是威斯康星大學麥迪遜分校的助理教授Sebastian Raschka,此前還編寫過Python Machine Learning一書。
話不多說現在進入干貨時間,好東西太多篇幅較長,記得先碼后看!
原資源地址:
https://github.com/rasbt/deeplearning-models
1、多層感知機
多層感知機簡稱MLP,是一個打基礎的知識點:
多層感知機:
TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/mlp/mlp-basic.ipynbPyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/mlp/mlp-basic.ipynb
增加了Dropout部分的多層感知機:
TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/mlp/mlp-dropout.ipynbPyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/mlp/mlp-dropout.ipynb
具備批標準化的多層感知機:
TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/mlp/mlp-batchnorm.ipynbPyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/mlp/mlp-batchnorm.ipynb
從零開始了解多層感知機與反向傳播:
TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/mlp/mlp-lowlevel.ipynbPyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/mlp/mlp-fromscratch__sigmoid-mse.ipynb
2、卷積神經網絡
在卷積神經網絡這一部分,細碎的知識點很多,包含基礎概念、全卷積網絡、AlexNet、VGG等多個內容。來看干貨:
卷積神經網絡基礎入門:
TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/cnn/cnn-basic.ipynbPyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-basic.ipynb
卷積神經網絡的初始化:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-he-init.ipynb
想用等效卷積層替代全連接的話看看下面這個:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/fc-to-conv.ipynb
全卷積神經網絡基礎知識在這里:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-allconv.ipynb
Alexnet網絡模型在CIFAR-10數據集上的實現:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-alexnet-cifar10.ipynb
關于VGG模型,你可能需要了解VGG-16架構:
TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/cnn/cnn-vgg16.ipynbPyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-vgg16.ipynb
在CelebA上訓練的VGG-16性別分類器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-vgg16-celeba.ipynb
VGG19網絡架構:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-vgg19.ipynb
關于2015年被提出的經典CNN模型ResNet,最厲害的資源也在這了。
比如ResNet和殘差塊:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/resnet-ex-1.ipynb
用MNIST數據集訓練的ResNet-18數字分類器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-resnet18-mnist.ipynb
用人臉屬性數據集CelebA訓練的ResNet-18性別分類器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-resnet18-celeba-dataparallel.ipynb
在MNIST上訓練的ResNet-34:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-resnet34-mnist.ipynb
在CelebA上訓練ResNet-34性別分類器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-resnet34-celeba-dataparallel.ipynb
在MNIST上訓練的ResNet-50數字分類器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-resnet50-mnist.ipynb
在CelebA上訓練ResNet-50性別分類器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-resnet50-celeba-dataparallel.ipynb
在CelebA上訓練ResNet-101性別分類器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-resnet101-celeba.ipynb
在CelebA上訓練ResNet-152性別分類器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-resnet152-celeba.ipynb
CIFAR-10分類器中的網絡:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/nin-cifar10.ipynb
3、指標學習
具有多層感知機的孿生網絡:
TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/metric/siamese-1.ipynb
4、自編碼器
在自編碼器這一部分,同樣有很多細分類別需要學習,注意留出充足時間學習這一內容。
自編碼器的種類很多,比如全連接自編碼器:
TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/autoencoder/ae-basic.ipynbPyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/autoencoder/ae-basic.ipynb
還有卷積自編碼器。比如這個反卷積(轉置卷積)卷積自編碼器:
TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/autoencoder/ae-deconv.ipynbPyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/autoencoder/ae-deconv.ipynb
沒有進行池化的反卷積自編碼器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/autoencoder/ae-deconv-nopool.ipynb
有最近鄰插值的卷積自編碼器:
TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/autoencoder/ae-conv-nneighbor.ipynbPyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/autoencoder/ae-conv-nneighbor.ipynb
在CelebA上訓練過的有最近鄰插值的卷積自編碼器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/autoencoder/ae-conv-nneighbor-celeba.ipynb
在谷歌涂鴉數據集Quickdraw上訓練過的有最近鄰插值的卷積自編碼器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/autoencoder/ae-conv-nneighbor-quickdraw-1.ipynb
變分自編碼器也是自編碼器中的重要一類:
變分自編碼器基礎介紹:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/autoencoder/ae-var.ipynb
卷積變分自編碼器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/autoencoder/ae-conv-var.ipynb
最后,還有條件變分自編碼器也需要關注。比如在重建損失中有標簽的:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/autoencoder/ae-cvae.ipynb
沒有標簽的:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/autoencoder/ae-cvae_no-out-concat.ipynb
有標簽的條件變分自編碼器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/autoencoder/ae-cnn-cvae.ipynb
沒有標簽的條件變分自編碼器:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/autoencoder/ae-cnn-cvae_no-out-concat.ipynb
5、生成對抗網絡(GAN)
在MNIST上的全連接GAN:
TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/gan/gan.ipynbPyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/gan/gan.ipynb
在MNIST上訓練的條件GAN:
TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/gan/gan-conv.ipynbPyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/gan/gan-conv.ipynb
用Label Smoothing方法優化過的條件GAN:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/gan/gan-conv-smoothing.ipynb
6、循環神經網絡
針對多對一的情緒分析和分類問題中,包括簡單單層RNN:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/rnn/rnn_simple_imdb.ipynb
壓縮序列的簡單單層RNN:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/rnn/rnn_simple_packed_imdb.ipynb
RNN和LSTM技術:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/rnn/rnn_lstm_packed_imdb.ipynb
基于GloVe預訓練詞向量的有LSTM核的RNN:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/rnn/rnn_lstm_packed_imdb-glove.ipynb
GRU核的RNN:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/rnn/rnn_gru_packed_imdb.ipynb
多層雙向RNN:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/rnn/rnn_gru_packed_imdb.ipynb
一對多/序列到序列的生成新文本的字符RNN:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/rnn/char_rnn-charlesdickens.ipynb
7、有序回歸
針對不同場景,有三類有序回歸干貨:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/ordinal/ordinal-cnn-coral-afadlite.ipynbhttps://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/ordinal/ordinal-cnn-niu-afadlite.ipynb
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/ordinal/ordinal-cnn-niu-afadlite.ipynb
8、方法和技巧
關于周期性學習速率,這里也有一份小技巧:
PyTorch版
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/tricks/cyclical-learning-rate.ipynb
9、PyTorch Workflow和機制
用自定義數據集加載PyTorch,這里也有一些攻略:
比如用CelebA中的人臉圖像:
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/mechanics/custom-data-loader-celeba.ipynb
比如用街景數據集:
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/mechanics/custom-data-loader-svhn.ipynb
比如用Quickdraw:
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/mechanics/custom-data-loader-quickdraw.ipynb
在訓練和預處理環節,標準化圖像可參考:
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-standardized.ipynb
圖像信息樣本:
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/mechanics/torchvision-transform-examples.ipynb
有文本文檔的Char-RNN :
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/rnn/char_rnn-charlesdickens.ipynb
在CelebA上訓練的VGG-16性別分類器的并行計算等:
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/cnn/cnn-vgg16-celeba-data-parallel.ipynb
10、TensorFlow Workflow與機制
這是這份干貨中的最后一個大分類,包含自定義數據集、訓練和預處理兩大部分。
內容包括:
將NumPy NPZ用于小批量訓練圖像數據集
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/mechanics/image-data-chunking-npz.ipynb用HDF5文件存儲圖像數據集,用于小規模訓練
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/mechanics/image-data-chunking-hdf5.ipynb用輸入pipeline從TFRecords文件中讀取數據
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/mechanics/tfrecords.ipynbTensorFlow數據集API
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/mechanics/dataset-api.ipynb
如果需要從TensorFlow Checkpoint文件和NumPy NPZ Archive中存儲和加載訓練模型,可移步:
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/mechanics/saving-and-reloading-models.ipynb
11、傳統機器學習
最后,如果你是從零開始入門,可以從傳統機器學習看起。包括感知機、邏輯回歸和Softmax回歸等。
感知機部分TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/basic-ml/perceptron.ipynbPyTorch版筆記
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/basic-ml/perceptron.ipynb
邏輯回歸部分也是一樣:
邏輯回歸部分部分TensorFlow版Jupyter Notebooks
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/basic-ml/logistic-regression.ipynbPyTorch版筆記
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/basic-ml/logistic-regression.ipynb
Softmax回歸,也稱為多項邏輯回歸:
Softmax回歸部分部分TensorFlow版Jupyter Notebook
https://github.com/rasbt/deeplearning-models/blob/master/tensorflow1_ipynb/basic-ml/softmax-regression.ipynbPyTorch版筆記
https://github.com/rasbt/deeplearning-models/blob/master/pytorch_ipynb/basic-ml/softmax-regression.ipynb
這份干貨滿滿的資源到這里就結束了,再次放上原文傳送門:
https://github.com/rasbt/deeplearning-models
超強干貨,記得收藏~
— 完 —