Chainerには、caffe.CaffeFunction('bvlc_googlenet.caffemodel')
のようにcaffemodelを読み込む関数が備わっています。
参考: http://qiita.com/tabe2314/items/6c0c1b769e12ab1e2614
普段TensorFlowしか使ってないので、そういう便利系のやつがTensorFlowにもないかと調べていたらありました。
ethereon/caffe-tensorflow: Caffe models in TensorFlow - GitHub
この中のconvert.py
を使えば、.prototxt
や.caffemodel
を、TensorFlowで使われる.py
と.npy
に変換できます。
※.prototxt
と.py
はモデルの構造、.caffemodel
と.npy
は重みデータです。
使い方
examples/mnistが変換に関する説明になっています。
NN構造データの変換(.prototxt
→ .py
)
$ ./convert.py examples/mnist/lenet.prototxt --code-output-path=mynet.py
重みデータの変換(.caffemodel
→ .npy
)
$ ./convert.py examples/mnist/lenet.prototxt --caffemodel examples/mnist/lenet_iter_10000.caffemodel --data-output-path=mynet.npy