美文网首页
树莓派安装caffe2的坑

树莓派安装caffe2的坑

作者: cheerss | 来源:发表于2018-05-22 20:48 被阅读0次
    1. 按照官方的教程编译源码,注意./scripts/build_raspbian.sh文件不在caffe2目录下,而在pytorch的根目录(caffe2源码已经合并如pytorch)。看脚本中开了两个线程进行编译,编译到83%左右出现过一次错误,原因是内存超限,不要紧,重新编译一次就好了。

    2. 需要的话要到pytorch/build目录下执行sudo make install。这一步是将编译好的库、可执行文件等放到系统目录等,不太记得make阶段是否做了,反正再执行一次也无害。

    3. 在python下执行import caffe2成功,证明安装成功。(我用的是系统自带的python,不是Anaconda安装的,自己编译库,感觉Anaconda坑会比较多,因为Anaconda自己维护了一个lib目录,经常因为和系统带的库版本不一样而出各种问题)

    4. 执行import caffe2.python.predictor.predictor_exporter as pe报错

    Import pycaffe lead to `__new__() got an unexpected keyword argument 'file'` Problem
    

    原因是编译caffe2用的是系统的protoc,而在python中执行时会用python中用pip安装的protoc,两个protoc版本不同,因而导致该错误。可以用如下命令验证

    pkg-config --modversion protobuf # 我的系统的protoc是3.5.0版本
    pip list | grep protobuf # pip安装的版本是3.0.0版本
    

    需要执行

    sudo pip install --upgrade protobuf
    # 没有指定版本,发现更新后是3.5.1,和系统的也不一样,但是不要紧,两者兼容,重新执行上面的命令发现OK了
    
    1. 执行import caffe2.python.predictor.predictor_exporter as pe报错
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/usr/local/lib/python2.7/dist-packages/caffe2/python/predictor/predictor_exporter.py", line 10, in <module>
        from caffe2.python import workspace, core, scope
      File "/usr/local/lib/python2.7/dist-packages/caffe2/python/workspace.py", line 15, in <module>
        from past.builtins import basestring
    ImportError: No module named past.builtins
    

    这个是因为缺个库,装上就好了sudo pip install future

    1. 如果更新protoc失败则有可能是pip版本太旧,可以先执行
    pip install --upgrade pip
    sudo pip install --upgrade pip
    

    注意此处两条命令都需要执行,此处还没太搞明白为什么,只执行第一条的话,再次使用pip会报错如下:

    Import Error:cannot import name main
    

    网上有教程告诉你怎么改这个错,是pip版本问题引起的,需要修改pip源文件,但是改了会发现sudo pip不能用了,pip和sudo pip版本必须一样,所以都更新了就好了。

    相关文章

      网友评论

          本文标题:树莓派安装caffe2的坑

          本文链接:https://www.haomeiwen.com/subject/thbkjftx.html