updateを意図して何かしていたわけではないのですが
!となることがあり試してみたらできたという感じです。
最近、機械学習やディープラーニングを少しだけ試してみているのですが
マストなライブラリnumpyと、画像系教材がおおいのでPILOWを使ったりします。
そもそもすべて独学・我流でつかっていて、素地があるわけではなく
ひとたび目的を達成するとしばらくつかわなくなるので
また、おさらいというには言い過ぎな状態から使用再開するかたちになっています。
で、そんなかんじで進めている時に、ふとPILLOWとnumpyで画像を評価するという
演習をしてみたところ結果がでるのが超早い。
あれ?っと思い以前AE用につくったコードと比較してみたところ
同じように縦横を順に評価しているが使用している関数が違う。
これを以前書いたコードにも実装してみたらどうなるだろうってことでやってみたわけです。
んで、結果は俄然早いです。同じ連番データを使った場合で比較するなら10倍以上。
画像サイズは同じでデュレーションが4倍・動きも多いデータでも時間比較で3倍早いですからね。驚きました。
どうも、キャッシュの使い方の違いのようですがこれほど違うとは、、、って感じです。
以下、キャプチャ動画と新旧バージョンの比較と新バージョンのサンプルデータです。
旧バージョン
PNG
1760 x 990 ピクセル
連番24枚
評価時間
約4min30sec(270sec)
270(sec) / 24(ファイル) = 11.25 (sec/ファイル)
1760 x 990 /11.25 = 15,4880 (ピクセル/sec)
新バージョン
PNG
1760×990 ピクセル
連番96枚
69色
評価時間
約1min28sec(88sec30frm)
88(sec) / 96(ファイル) = 0.9166 (sec/ファイル)
1760 x 990 /0.916 = 約190,2183 (ピクセル/sec)
これを基準にすると約12倍早くなってますね。
ただ、動画の最後で旧バージョンと同じファイルを評価してますので
より公正に比較してみます。
評価時間
約19sec(sec19sec16frm)
19(sec) / 24(ファイル) = 0.7916 (sec/ファイル)
1760 x 990 /0.7916 = 約220,1111 (ピクセル/sec)
ということで約14倍速という結果になりました。
いずれにしろ速度の向上は目覚ましいです。
作業に際してはありがたい限りです。
一応、以前のエントリー
https://www.patec-tech.jp/process/?p=1582
https://www.patec-tech.jp/process/?p=2697