如何升级我的caffe模型,以便每次使用时都不会"升级"

jas*_*jas 3 machine-learning deep-learning caffe pycaffe

我正在使用caffe和python(pycaffe).我正在使用模型动物园的预建的alexnet模型.

从这个页面:https: //github.com/BVLC/caffe/tree/master/models/bvlc_alexnet

每次我使用该模型时,使用以下代码:

net = caffe.Classifier('deploy.prototxt','bvlc_alexnet.caffemodel',
                   channel_swap=(2,1,0),
                   raw_scale=255,
                   image_dims=(256, 256))
Run Code Online (Sandbox Code Playgroud)

caffe告诉我文件格式很旧,需要升级文件.这不应该只发生一次吗?

E0304 20:52:57.356480 12716 upgrade_proto.cpp:609] Attempting to upgrade input file specified using deprecated transformation parameters: /tmp/bvlc_alexnet.caffemodel
I0304 20:52:57.356554 12716 upgrade_proto.cpp:612] Successfully upgraded file specified using deprecated data transformation parameters.     E0304 20:52:57.356564 12716 upgrade_proto.cpp:614] Note that future Caffe releases will only support transform_param messages for transformation fields.
E0304 20:52:57.356580 12716 upgrade_proto.cpp:618] Attempting to upgrade input file specified using deprecated V1LayerParameter: /tmp/bvlc_alexnet.caffemodel
I0304 20:52:59.307096 12716 upgrade_proto.cpp:626] Successfully upgraded file specified using deprecated V1LayerParameter
Run Code Online (Sandbox Code Playgroud)

如何正确升级文件,以便每次都不会发生这种情况.

Sha*_*hai 5

加载模型时,caffe会升级原型文本和二进制原型,但不会覆盖您正在使用的原始文件.这就是你不断收到这条消息的原因.

升级非常简单.在$CAFFE_ROOT/build/tools你会发现两个二进制文件:upgrade_net_proto_binaryupgrade_net_proto_text.只需将它们应用到你deploy.prototxtbvlc_alexnet.caffemodel并保存结果:

~$ mv deploy.prototxt deploy_old.prototxt
~$ mv bvlc_alexnet.caffemodel bvlc_alexnet_old.caffemodel
~$ $CAFFE_ROOT/build/tools/upgrade_net_proto_text deploy_old.prototx deploy.prototxt
~$ $CAFFE_ROOT/build/tools/upgrade_net_proto_binary bvlc_alexnet_old.caffemodel bvlc_alexnet.caffemodel
Run Code Online (Sandbox Code Playgroud)

就是这样!