wide and deep

deep learning

tensorflow2/kerasでcustom Convolutional LSTMを組み立てる

本記事ではtensorflow2/kerasを使ってカスタムconv LSTMレイヤーを作成することを目標とします. ConvLSTM2DCellを解読することでどこを変更すればいいのかを理解し,自分の思い通りのレイヤーを作成できるようになります. 例として,Zhang2019のconvLSTMを…

VGGにおける前処理をネットワーク内で行い自作generatorを高速化する(keras)

今回したこと VGG16をfinetuneする際に自作generatorがボトルネックになっており,時間がかかっていた. そこで自作generatorの実装を見直すことで 770s/epoch -> 490s/epoch へと学習自体の高速化を図った.なお,今回用いたVGG16はkeras標準のものではなく…

kerasで自作レイヤーを含むモデルをload_modelするときのエラー処理

エラーと原因 自作レイヤーを読み込む際に,初期定義された重みの形状とは異なることに関するエラー. ValueError: Layer #0 (named "custom_conv" in the current model) was found to correspond to layer custom_conv in the save file. However the new …

keras/tensorflowでoptimizersの学習率を層ごとに決定する

一昔前のDL論文を読んでいると,層ごとに違う学習率が設定されていることがある. 自分にはあまり馴染みがなかったが,Caffeでは簡単にその設定ができたために使われていたらしい.keras(tensorflow)でこの設定をしようとしたとき, keras.optimizers.SGD(lr…

keras/tensorflowでdilated convolutionをstrides!=1で使う

keras(tensorflow backend)にはdilated convolutionが実装されている. Convolutionalレイヤー - Keras Documentation keras.layers.Conv2D(filters, kernel_size, strides=(1, 1), padding='valid', data_format=None, dilation_rate=(1, 1), activation=No…

エポック終了時に学習曲線図を保存するコールバックを作成(keras)

今回したこと エポック終了時にそれまでの学習曲線を図として保存するコールバックを作成した. 通常はkeras.callbacks.History()を使用し,学習が終わってから1度のみhistoryを取得するが,途中で学習を止めた際にはhistoryが取得できないのでコールバック…

Google colaboratory上でMMdnnを使いcaffe→kerasへ学習済みモデル変換

今回したこと MMdnnを使って配布されている学習済みcaffeモデル(vgg16)をkerasモデルへと変換した. caffeの環境構築が面倒そうだったので,Google colab上で変換することにした. (今後caffeでモデル構築することはなさそうだし...) 今回実行したコード…