谷歌正式開源Hinton膠囊理論代碼,即刻用 TensorFlow 實現吧

jopen 6年前發布 | 10K 次閱讀 Hinton TensorFlow Google

谷歌正式開源Hinton膠囊理論代碼,即刻用 TensorFlow 實現吧

相信大家對于「深度學習教父」Geoffery Hinton 在去年年底發表的膠囊網絡還記憶猶新,在論文 Dynamic Routing between Capsules 中,Hinton 團隊提出了一種全新的網絡結構。為了避免網絡結構的雜亂無章,他們提出把關注同一個類別或者同一個屬性的神經元打包集合在一起,好像膠囊一樣。在神經網絡工作時,這些膠囊間的通路形成稀疏激活的樹狀結構(整個樹中只有部分路徑上的膠囊被激活)。這樣一來,Capsule 也就具有更好的解釋性。

在實驗結果上,CapsNet 在數字識別和健壯性上都取得了不錯的效果。詳情可以參見終于盼來了 Hinton 的 Capsule 新論文,它能開啟深度神經網絡的新時代嗎?

日前,該論文的第一作者 Sara Sabour 在 GitHub 上公布了論文代碼,大家可以馬上動手實踐起來。雷鋒網 AI 研習社將教程編譯整理如下:

所需配置:

執行 test 程序,來驗證安裝是否正確,諸如:

python layers_test.py

快速 MNIST 測試:

python experiment.py --data_dir=$DATA_DIR/mnist_data/ --train=false \

--summary_dir=/tmp/ --checkpoint=$CKPT_DIR/mnist_checkpoint/model.ckpt-1

快速 CIFAR10 ensemble 測試:

python experiment.py --data_dir=$DATA_DIR --train=false --dataset=cifar10 \

--hparams_override=num_prime_capsules=64,padding=SAME,leaky=true,remake=false \

--summary_dir=/tmp/ --checkpoint=$CKPT_DIR/cifar/cifar{}/model.ckpt-600000 \

--num_trials=7

 CIFAR10 訓練指令:

python experiment.py --data_dir=$DATA_DIR --dataset=cifar10 --max_steps=600000\

--hparams_override=num_prime_capsules=64,padding=SAME,leaky=true,remake=false \

--summary_dir=/tmp/

MNIST full 訓練指令:

  • 也可以執行--validate=true as well 在訓練-測試集上訓練

  • 執行 --num_gpus=NUM_GPUS 在多塊 GPU 上訓練

python experiment.py --data_dir=$DATA_DIR/mnist_data/ --max_steps=300000\

--summary_dir=/tmp/attempt0/

 MNIST baseline 訓練指令:

python experiment.py --data_dir=$DATA_DIR/mnist_data/ --max_steps=300000\

--summary_dir=/tmp/attempt1/ --model=baseline

To test on validation during training of the above model:

訓練如上模型時,在驗證集上進行測試(記住,在訓練過程中會持續執行指令):

  • 在訓練時執行 --validate=true 也一樣

  • 可能需要兩塊 GPU,一塊用于訓練集,一塊用于驗證集

  • 如果所有的測試都在一臺機器上,你需要對訓練集、驗證集的測試中限制 RAM 消耗。如果不這樣,TensorFlow 會在一開始占用所有的 RAM,這樣就不能執行其他工作了

python experiment.py --data_dir=$DATA_DIR/mnist_data/ --max_steps=300000\

--summary_dir=/tmp/attempt0/ --train=false --validate=true

大家可以通過 --num_targets=2 和 --data_dir=$DATA_DIR/multitest_6shifted_mnist.tfrecords@10 在 MultiMNIST 上進行測試或訓練,生成 multiMNIST/MNIST 記錄的代碼在 input_data/mnist/mnist_shift.py 目錄下。

multiMNIST 測試代碼:

python mnist_shift.py --data_dir=$DATA_DIR/mnist_data/ --split=test --shift=6 

--pad=4 --num_pairs=1000 --max_shard=100000 --multi_targets=true

可以通過 --shift=6 --pad=6 來構造 affNIST expanded_mnist

論文地址:https://arxiv.org/pdf/1710.09829.pdf 

GitHub 地址:https://github.com/Sarasra/models/tree/master/research/capsules

雷鋒網 AI 研習社編譯整理。

來自: 雷鋒網

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!