2016/4/11~4/17
SRCNN実装
勉強だけでは実力は身につかないので、実践して見ようという事で、waifu2xで資料があることからSRCNNをTheanoを用いて自分で実装してみることに。
*このプロジェクトはtheanonSRとしてgithubで公開済み。
予定:黒字、実際:赤字
月
エラーでまくってもいいので、ツール走らせるまで終わらせる。
家での動作確認まで終わらせる。
モジュール実装:4階テンソルをnumpy
で実装してPickleするところで躓き中。ツール走らせるなんてまだまだ先。木曜までに実装を進めていく感じにしたい。
火
モジュール実装1 Theano sharedを用いたcPickleでのphoto.pkl.gz
保存まで実装。4階テンソルのdata x, y に対してConvLayer
が動くように修正。
モジュール実装:上終わって、実際にtrainingを動かせるところまでOK。ただ、Convolution結果の画像が真っ黒で計算がうまくいっていない模様。。。
水
モジュール実装2 実際にtrainingを動かせるように実装。
モジュール実装2:画像を0-1に正規化、あとlearning rateの調整にて実際に動くようになるところまでOK。activationどうすればいい?→activationなしだとただの線形変換になってしまう。。。→ReLUっぽいのを使うのがよさそう
- 案1
Max(0, x)
→ 負の値を0へ。 - 案2
Min(Max(0, x), 1)
→ 常に0-1で正規化。こっちにしたいかなー。。。
木
モジュール実装3 動作するところまで実装終わらせる。
モジュール実装3: 上記案2を試したところvanishing gradient が発生して途中で結果がサチってしまい望む結果が得られなかった。代わりにLReLU (Leak ReLU) を試してるところだけどうまく動いてくれない。。。バグ特定中、、
金
全体的に動作確認がとれるまでいきたい。
モジュール実装3: LReLUで動作確認とれた。1日中回して1000epoch後、割といい精度で画像復元できてるけどトレーニング続けたらもっとよくなりそう。週末も回しっぱなしにしとく予定。どうやらTraining parameterのチューニングは短い時間ではできそうにない。
土
RGBでやるとパラメータのチューニング(Training)がよりシビアになる傾向にあると思う。Trainingにも時間epochがかかるし。→YCbCrでやってみることに。YCbCrでトレーニング回す。3層で。
日
Alor Setar へ旅行に行っていたため進捗なし。トレーニングは回しつづけてた。
今後の予定
来週
評価関数の実装。(どれだけいいSRができているかを比較検討するため。)
再来週
実際にいろいろなパラメータでテストしていく。
WK17, 18でパラメータと動作時間の関係を出していく。可能ならAWSでの環境構築もしてしまいたい。
WK19 可能なら動画への応用検討を開始。(これができるようならマネタイズもできるかも。)
Star 100とれないかなー?
WK20,21,22 動画への応用へ。