VGG16Layers()の中間データを吐き出したい
機械学習で特定の層において中間データの吐き出しをしたいです。
その際に処理が遅く原因がわかりません。
chainerに詳しい方々ご教授の方お願いいたします!!
発生している問題・エラーメッセージ
処理が長い、1枚の画像を15分くらい回したが終わらない。
該当のソースコード
chainerの学習済みソースコードのVGG16Layers()のメソッド関数extract()の抜粋です。
python
1211 def extract(self, images, layers=None, size=(224, 224), **kwargs): 2 コメントアウトなので略 3268 4269 if layers is None: 5270 layers = ['fc7'] 6271 7272 if kwargs: 8273 argument.check_unexpected_kwargs( 9274 kwargs, test='test argument is not supported anymore. ' 10275 'Use chainer.using_config', 11276 volatile='volatile argument is not supported anymore. ' 12277 'Use chainer.using_config') 13278 argument.assert_kwargs_empty(kwargs) 14279 15280 x = concat_examples([prepare(img, size=size) for img in images]) 16281 x = Variable(self.xp.asarray(x)) 17282 #return self(x, layers=layers) 18283 19284 import pdb;pdb.set_trace() 20285 h = {} 21286 h[layers[0]] = self(x, layers=layers) 22287 23288 return {k:v for (k,v) in h.items() if k in self.layers}
試したこと
286行目のself(x, layers=layers)において処理が止まることが判明した。
補足情報(FW/ツールのバージョンなど)
docker(Ubuntu16.04)上で動かしています。
chainer5.0.0
回答1件
あなたの回答
tips
プレビュー