将模型从Caffe转换为Tensorflow时出错

时间:2017-02-08 14:14:27

标签: python tensorflow converter deep-learning caffe

ImportError:没有名为kaffe.tensorflow的模块

尝试使用caffe-tensorflow转换器将模型从Caffe转换为Tensorflow。

使用此命令:

  

convert.py --caffemodel ./VGG_ILSVRC_19_layers.caffemodel   --data-output-path ./TF_conv/dataOutput.npz --code-output-path ./TF_conv/codeOutput.py ./VGG_ILSVRC_19_layers_deploy.prototxt

我得到这个代码输出文件:

from kaffe.tensorflow import Network

class VGG_ILSVRC_19_layers(Network):
    def setup(self):
        (self.feed('data')
             .conv(3, 3, 64, 1, 1, name='conv1_1')
             .conv(3, 3, 64, 1, 1, name='conv1_2')
             .max_pool(2, 2, 2, 2, name='pool1')
             .conv(3, 3, 128, 1, 1, name='conv2_1')
             .conv(3, 3, 128, 1, 1, name='conv2_2')
             .max_pool(2, 2, 2, 2, name='pool2')
             .conv(3, 3, 256, 1, 1, name='conv3_1')
             .conv(3, 3, 256, 1, 1, name='conv3_2')
             .conv(3, 3, 256, 1, 1, name='conv3_3')
             .conv(3, 3, 256, 1, 1, name='conv3_4')
             .max_pool(2, 2, 2, 2, name='pool3')
             .conv(3, 3, 512, 1, 1, name='conv4_1')
             .conv(3, 3, 512, 1, 1, name='conv4_2')
             .conv(3, 3, 512, 1, 1, name='conv4_3')
             .conv(3, 3, 512, 1, 1, name='conv4_4')
             .max_pool(2, 2, 2, 2, name='pool4')
             .conv(3, 3, 512, 1, 1, name='conv5_1')
             .conv(3, 3, 512, 1, 1, name='conv5_2')
             .conv(3, 3, 512, 1, 1, name='conv5_3')
             .conv(3, 3, 512, 1, 1, name='conv5_4')
             .max_pool(2, 2, 2, 2, name='pool5')
             .fc(4096, name='fc6')
             .fc(4096, name='fc7')
             .fc(1000, relu=False, name='fc8')
             .softmax(name='prob'))

使用:python ./codeOutput.py 我收到这个错误:

Traceback (most recent call last):
  File "./codeOutput.py", line 1, in <module>
    from kaffe.tensorflow import Network
ImportError: No module named kaffe.tensorflow

我是否必须将codeOutput.py文件放在kaffe.tensorflow模块所在的目录中?
我是否必须复制我的文件所在的kaffe.tensorflow模块?
我可以用某种方式连接这两个吗?

1 个答案:

答案 0 :(得分:1)

caffe-tensorflow必须在你的PYTHONPATH里面,所以python可以找到模块。 您可以在.bashrc中编辑PYTHONPATH环境变量。例如:

export PYTHONPATH='/path/to/caffe-tensorflow'

或者在脚本中添加路径:

import sys
sys.path.insert(0, '/path/to/caffe-tensorflow')