Skip to content

でぃーぷらーにんぐを無限にやってディープラーニングでディープラニングするためのもの

License

Notifications You must be signed in to change notification settings

embeddedsamurai/DeepLearningMugenKnock

 
 

Repository files navigation

ディープラーニング∞本ノック!!

ディープラーニング∞本(?)ノックぅぅ

まだ作成中なのであしからず

何問になるか分からないので∞本になってます。多分これからいろんな技術が出るからどんどん更新する予定でっす。 これはイモリと一緒にディープラーニングの基礎からDLのライブラリの扱い、どういうDLの論文があったかを実装しながら学んでいくための問題集です。本とか論文読んだだけじゃ机上の空想でしかないので、ネットワークの作成や学習率などのハイパーパラメータの設定を自分の手を動かしながら勉強するための問題集です。

問題集として使ってもテンプレやチートシートとして使っても使い方は自由です!!!!

僕が研究室で3年修行してディープラーニングで必要そうだなーと思ったものを集めてます。

例えば研究してて提案手法を急にKerasでやればとか簡単に言うけどそんなすぐにできるかいってよくあると思うんだけどそういうのにもすぐ対応できる力を身につけるためのものだとも思ってます。

  • 内容はいろいろな文献を調べて載っけてるので正しくないものもあるかもしれないので注意して下さい。もし間違ってたらプルリク下さい笑
  • 【注意】このページを利用して、または関して生じた事に関しては、私は一切責任を負いません。 すべて 自己責任 でお願い致します。
  • コードの書き方は私の趣向がけっこう出てるので、この書き方キモってなったら自分の書き方でやっていってください。答えはあくまで参考です。FWによってチョクチョク実装に小さな違いがあるのでそこはご愛嬌
  • なんとなく本とか買わずにDLを勉強したいーーーって人向けだと思う

もしこれがみなさんのお役に立ったら寄付や募金なども受け付けてます笑

Related

画像処理ノックはこっち

画像処理100本ノック!!

Recent

Twitterで更新を発信してますぅ

https://twitter.com/curry_yoyoyo

  • 2019.10.10[PyTorch] Seq2Seq Attention(Step別)を追加
  • 2019.9.30 [Pytorch] MobileNet v2 を追加
  • 2019.9.19 [TensorFlow] Xception, MobileNet_v1 を追加
  • 2019.9.16 [TensorFlow] ResNet 18, 34, 50, 101, 152 を追加
  • 2019.8.19 [Pytorch] NLP: Seq2seq+Attention, word2vecを追加
  • 2019.8.15 [Pytorch] pix2pixを追加
  • 2019.8.4 [Pytorch] DenseNet121, 169, 201, 264を追加
  • 2019.7.30 [PyTorch, Keras] Xceptionを追加
  • 2019.7.28 [Keras] ResNeXt-50, 101を追加
  • 2019.7.23 [Pytorch] ResNeXt-50, 101を追加
  • 2019.7.17 [Pytorch] VAEを追加 [keras, tensorflow, chainer] CGAN(MNIST)を追加
  • 2019.7.5 [pytorch, keras]ResNet18, 34, 101, 152を追加
  • 2019.6.16 [pytorch, tensorflow, keras, chainer] ResNet50を追加
  • 2019.6.9 [tensorflow] DCGANを追加
  • 2019.6.7 [Pytorch, tensorflow, keras, chainer]GoogleNet-v1(Inception)を追加
  • 2019.5.26 [tensorflow] DCGAN, Conditional GANを追加
  • 2019.5.19 [Keras, Chainer] ConditionalGANを追加
  • 2019.5.18 [データセット準備] MNIST, [Pytorch]ConditionalGANを追加
  • 2019.5.2 [データセット準備] Cifar10、[AutoEncoder, ConvAutoEncoder, GAN, DCGAN]Cifar10を追加
  • 2019.3.31 [画像認識モデル] APIを追加
  • 2019.3.19 [Pytorch][Chainer] GAN, DCGANを追加
  • 2019.3.17 Pooling layerを追加したけど、あとからクラス化と学習を追加する予定
  • 2019.3.17 seq2seq, convolutional layer を追加
  • 2019.3.16 ニューラルネットをクラス化 を追加
  • 2019.3.13 パーセプトロン系を追加
  • 2019.3.12 AutoEncoder, ConvAutoEncoder, パーセプトロンを追加
  • 2019.3.9 GAN, DCGANを追加
  • 2019.3.6 RNN, LSTM, BDLSTMを追加
  • 2019.3.5 AutoEncoder, RNNを追加 
  • 2019.3.4 データ拡張・回転を追加
  • 2019.3.3 UNetを追加

環境設定

Python-3.6でやって下さい。(解答はPython-3.6で用意してます)

1. Minicondaのインストール

https://conda.io/miniconda.html のサイトからMinicondaをインストールします。これはWindowでもMacOSでも可能です。Minicondaがインストールできたら、端末(Windowでは端末、MacOSではターミナル)を開き、以下コマンドで仮想環境を作成します。もしくはGoogle colabolatoryを使って見て下さい。GPUが使えます。

$ conda create python=3.6 -n dlmugenknock

作成できたら、以下コマンドで仮想環境を動作します。

$ source activate dlmugenknock

するとこうなります。

(dlmugenknock) :~/work_space/DeepLearningMugenKnock/ :$ 

2. gitのインストール

gitをインストールします。そして、端末を開いて、以下のコマンドを実行します。このコマンドでこのディレクトリを丸ごと自分のパソコンにコピーできます。

$ git clone https://github.com/yoyoyo-yo/DeepLearningMugenKnock.git

3. パッケージのインストール

以下のコマンドで必要なパッケージをインストールします。これで準備は完了です!!

$ pip install -r requirements.txt

フレームワーク早見表

PyTorch Tensorflow Keras Chainer Caffe
入力 [mb,c,h,w] [mb, h, w, c] [mb, h, w, c] [mc, c, h, w] [mb, c, h, w]
教師ラベル index [mb] onehot [mb, cls] onehot [mb, cls] index [mb] index [mb]
速度 まあまあ早い 早い 早い 普通 まあまあ早い?
how to ✓install(Docker)
✓install(Native)
sample ✓(slim)
✓(layers)
✓(raw)

問題

詳細な問題内容は各ディレクトリのREADMEにあります。(ディレクトリで下にスクロールすればあります)

自分で全部実装編

番号 問題 答え 番号 問題
1 パーセプトロン AND
2 パーセプトロン 学習
3 パーセプトロン 収束性
4 パーセプトロン Sigmoid
5 パーセプトロン バイアス
6 パーセプトロン OR
7 パーセプトロン NOT
8 パーセプトロン XOR
9 多層パーセプトロン FeedForward
10 多層パーセプトロン 学習
11 更に多層パーセプトロン
12 ニューラルネットのクラス化
番号 問題 答え 番号 問題
13 画像認識
14 誤差関数
Sigmoid Cross Entropy
Convolutional Layer
Padding
Stride
Max-pooling layer
Average-pooling layer
番号 問題 答え 番号 問題
1 データセットの読み込み
2 ミニバッチの作成
3 イテレーション・エポック
4 データ拡張・水平反転
5 データ拡張・上下反転
6 データ拡張・回転
MNIST Step.1 ダウンロード
MNIST Step.2 学習データの読み込み
MNIST Step.Final テストデータの読み込み
CIFAR-10 Step.1 ダウンロード
CIFAR-10 Step.2 学習データの読み込み
CIFAR-10 Step.Final テストデータの読み込み

自分でネットワーク組む編

ここから基本的に、「python answers/##.py --train --test」と打てば動きます。

問題 PyTorch TensorFlow Keras Chainer Published year
問題 PyTorch tf.layers tf.slim tf.keras Keras Chainer
モデルの書き方の簡潔化
API
LeNet
AlexNet 2012
ZFNet 2013
Global Average Pooling 2013
Network in network 2013
VGG16 2014
VGG19 2014
GoogLeNet-v1(Inception) 2014
Batch Normalization 2015
ResNet-18 2015
ResNet-34 2015
ResNet-50 ✓(not good) 2015
ResNet-101 2015
ResNet-152 2015
ResNeXt-50 2016
ResNeXt-101 2016
Xception 2016
DenseNet121 2016
DenseNet169 2016
DenseNet201 2016
DenseNet264 2016
MobileNet-v1 2017
MobileNet-v2 2019
問題 PyTorch TensorFlow Keras Chainer
問題 PyTorch tf.layers tf.slim tf.keras Keras Chainer
SemanticSegmentationとは?
Binalization Step.1. データセット読み込み
Binalization Step.2. 学習時のLoss計算
Binalization Step.3. テスト時の予測結果の表示
SemanticSegmentation Step.1. データセット読み込み
SemanticSegmentation Step.2. 学習時のLoss計算
SemanticSegmentation Step.3. テスト時の予測結果の表示
UpSampling手法1. NearestNeighbor補間
UpSampling手法2. Transposed convolution
特徴マップのconcat
UNet
UNet風モデル
問題 PyTorch TensorFlow Keras Chainer
問題 PyTorch tf.layers tf.slim tf.keras Keras Chainer
AutoEncoder ✓?
AutoEncoder cifar10
ConvolutionalAutoEncoder ✓?
ConvolutionalAutoEncoder cifar10
VAE (Variational AutoEncoder) MNIST
GAN ✓ not good
GAN cifar10 ✓ failed
DCGAN
DCGAN cifar10
Conditional GAN mnist
Conditional GAN cifar10
pix2pix
問題 PyTorch TensorFlow Keras Chainer Published year
問題 PyTorch tf.layers tf.slim tf.keras Keras Chainer
1 hotベクトル化
RNN (Many-to-one) Step.1. 学習
RNN (Many-to-one) Step.2. テスト
LSTM (Many-to-one)
Bi-directional LSTM (Many-to-one) ✓?
GRU (Many-to-one)
Seq2seq
Seq2Seq + Attention (Step1. Source Target Attention) 2017
Seq2Seq + Attention (Step2. Self Attention) 2017
Seq2Seq + Attention (Step3. Multi head Attention) 2017
Seq2Seq + Attention (Step4. Feed Forward Networ) 2017
Seq2Seq + Attention (Step5. Positional Encoding) 2017
Seq2Seq + Attention (Final. Parameter setting) 2017
Word2Vec (Skip-gram)

Citation

@article{yoyoyo-yoDeepLearningMugenKnock,
    Author = {yoyoyo-yo},
    Title = {DeepLearningMugenKnock},
    Journal = {https://github.com/yoyoyo-yo/DeepLearningMugenKnock},
    Year = {2019}
}

License

© Yoshito Nagaoka All Rights Reserved.

This is under MIT License.

LICENSE

About

でぃーぷらーにんぐを無限にやってディープラーニングでディープラニングするためのもの

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%