Skip to content

tom01h/deep-learning-from-scratch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ゼロから作る Deep Learning をコピーしてきて勉強中

オリジナルのGit
7章のCNNを育てていきます。

  1. BatichNormalization 追加 (このバージョンを見る)
  2. CIFAR-10 環境追加 (このバージョンを見る)
    データの準備は↓
  • ここから CIFAR-10 binary version (suitable for C programs) をダウンロード
  • データを解いて $ tar xvzf cifar-10-binary.tar.gz
  • データをまとめて $ cat cifar-10-batches-bin/data_batch_* > cifar10-train
  • 圧縮 $ gzip cifar10-train
  • test用のデータ(cifar10-test.gz)も同様にね
  1. 畳み込み層2層追加 (このバージョンを見る)
  • 畳み込み層のチャンネル数を32に全結合層のニューロン数を256に増やす
  • カーネルサイズは3に減らす
  1. EarlyStopping (詳解 ディープラーニングを参考) を追加 (このバージョンを見る)
  • ついでにデータ間引き方修正
  1. 3層の畳み込み層と2層の全結合層 (このバージョンを見る)
  • ついでに CuPy 対応
  • 畳み込み層
    • カーネルサイズは 3×3
    • パディングとストライドはどちらも 1
    • チャンネル数は順に 32, 32, 64
  • Pooling 層
    • サイズ2、ストライド2 で層毎に縦横のサイズが半分になる
  • BatchNormalization
    • β と γ を固定した簡易版
  • 全結合の隠れ層
    • 512 ニューロン
  1. BatchNormalization(簡易版) を修正 (このバージョンを見る)
  • N の平均と分散 → N,H,W 全部の平均と分散
  1. Binary Weight Network (このバージョンを見る)
  • XNOR-Net の論文 に従い、まずはウェイトだけを2値{-1,1}化する Binary Weight Network を実装
  • 1層目と出力層は2値化しない
  • 値だけ2値化していてデータ型は2値化していないので速くはならない
  1. Binary Neural Network (このバージョンを見る)
  • BNN の論文 に従い、 Binary Neural Network を実装
  • deterministic な 2値化を実装
  • shift based xxx は実装していない
  • ついでに、テスト時の Batch Naormalization に train_flg=False のつけ忘れを修正
  • ついでに 10 エポック毎に学習率を 1/10 にする機能を追加
  1. Ternary Activation (このバージョンを見る)
  • 入力が -1/2より小さいときは -1、1/2 以上の時は 1、その間の時は 0 となる Ternary Activation を実装
  • Binary Weight と組み合わせる
  • ついでに 25エポックに固定
  • ついでに cupy の範囲ちょっと拡大
  1. パラメタ保存環境 (このバージョンを見る)
  • ここで推論環境構築中
  • そのためのパラメタ保存環境
  • ついでに、バイナリアクティベーション時のパディングで0を使っているのを修正
  • ついでに、デフォルト環境をBNNにもどす
  1. Quaternary Activation (このバージョンを見る)
  • ついでに入力データを -255~255に奇数に変更
  1. 蒸留
  • 蒸留教師ラベルファイル(ttarray.pkl)があれば、教師データを差し替えて学習する
  • 蒸留用の教師ラベル作成は $ make_distillation.py
  • ついでに、パラメータを numpy に変換してから保存

オリジナルのREADMEはここから↓


ゼロから作る Deep Learning


表紙


本リポジトリはオライリー・ジャパン発行書籍『ゼロから作る Deep Learning』のサポートサイトです。

ファイル構成

フォルダ名 説明
ch01 1章で使用するソースコード
ch02 2章で使用するソースコード
... ...
ch08 8章で使用するソースコード
common 共通で使用するソースコード
dataset データセット用のソースコード

ソースコードの解説は本書籍をご覧ください。

必要条件

ソースコードを実行するには、下記のソフトウェアがインストールされている必要があります。

  • Python 3.x
  • NumPy
  • Matplotlib

※Pythonのバージョンは、3系を利用します。

実行方法

各章のフォルダへ移動して、Pythonコマンドを実行します。

$ cd ch01
$ python man.py

$ cd ../ch05
$ python train_nueralnet.py

ライセンス

本リポジトリのソースコードはMITライセンスです。 商用・非商用問わず、自由にご利用ください。

正誤表

本書の正誤情報は以下のページで公開しています。

https://github.com/oreilly-japan/deep-learning-from-scratch/wiki/errata

本ページに掲載されていない誤植など間違いを見つけた方は、japan@oreilly.co.jpまでお知らせください。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages