ディープラーニング∞本(?)ノックぅぅ
まだ作成中なのであしからず
何問になるか分からないので∞本になってます。多分これからいろんな技術が出るからどんどん更新する予定でっす。 これはイモリと一緒にディープラーニングの基礎からDLのライブラリの扱い、どういうDLの論文があったかを実装しながら学んでいくための問題集です。本とか論文読んだだけじゃ机上の空想でしかないので、ネットワークの作成や学習率などのハイパーパラメータの設定を自分の手を動かしながら勉強するための問題集です。
問題集として使ってもテンプレやチートシートとして使っても使い方は自由です!!!!
僕が研究室で3年修行してディープラーニングで必要そうだなーと思ったものを集めてます。
例えば研究してて提案手法を急にKerasでやればとか簡単に言うけどそんなすぐにできるかいってよくあると思うんだけどそういうのにもすぐ対応できる力を身につけるためのものだとも思ってます。
- 内容はいろいろな文献を調べて載っけてるので正しくないものもあるかもしれないので注意して下さい。もし間違ってたらプルリク下さい笑
- 【注意】このページを利用して、または関して生じた事に関しては、私は一切責任を負いません。 すべて 自己責任 でお願い致します。
- コードの書き方は私の趣向がけっこう出てるので、この書き方キモってなったら自分の書き方でやっていってください。答えはあくまで参考です。FWによってチョクチョク実装に小さな違いがあるのでそこはご愛嬌
- なんとなく本とか買わずにDLを勉強したいーーーって人向けだと思う
もしこれがみなさんのお役に立ったら寄付や募金なども受け付けてます笑
画像処理ノックはこっち
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で用意してます)
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/ :$
gitをインストールします。そして、端末を開いて、以下のコマンドを実行します。このコマンドでこのディレクトリを丸ごと自分のパソコンにコピーできます。
$ git clone https://github.com/yoyoyo-yo/DeepLearningMugenKnock.git
以下のコマンドで必要なパッケージをインストールします。これで準備は完了です!!
$ 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 | ✓ |
ここから基本的に、「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) | ✓ |
@article{yoyoyo-yoDeepLearningMugenKnock,
Author = {yoyoyo-yo},
Title = {DeepLearningMugenKnock},
Journal = {https://github.com/yoyoyo-yo/DeepLearningMugenKnock},
Year = {2019}
}
© Yoshito Nagaoka All Rights Reserved.
This is under MIT License.
LICENSE