在 Ubuntu 14.04 上设置 caffe,但在运行 classify.py 时遇到错误



我正在使用 https://github.com/BVLC/caffe/wiki/Ubuntu-14.04-VirtualBox-VM 作为灵感,在安装了 CUDA 的 Ubuntu 14.04 虚拟服务器上安装 Caffe(没有驱动程序)。我已经安装了所有必要的依赖项,并逐步按照所有说明进行操作,但是当我尝试测试安装时会出现以下错误。

关于步骤:"修改 python/classify.py 以添加 --print_results 选项"

我已通过 in classify.py 修改了代码,使其与官方咖啡发行版相同。不确定这是否是导致问题的步骤,但我想我会添加额外的信息以防万一。

我得到的错误如下:

vagrant@vagrant-ubuntu-trusty-64:~/caffe$ sudo python python/classify.py --print_results examples/images/cat.jpg foo
libdc1394 error: Failed to initialize libdc1394
Traceback (most recent call last):
  File "python/classify.py", line 14, in <module>
    import caffe
  File "/home/vagrant/caffe/python/caffe/__init__.py", line 1, in <module>
    from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver
  File "/home/vagrant/caffe/python/caffe/pycaffe.py", line 15, in <module>
    import caffe.io
  File "/home/vagrant/caffe/python/caffe/io.py", line 2, in <module>
    import skimage.io
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/__init__.py", line 15, in <module>
    reset_plugins()
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 89, in reset_plugins
    _load_preferred_plugins()
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 69, in _load_preferred_plugins
    _set_plugin(p_type, preferred_plugins['all'])
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 81, in _set_plugin
    use_plugin(plugin, kind=plugin_type)
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 251, in use_plugin
    _load(name)
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 295, in _load
    fromlist=[modname])
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/_plugins/matplotlib_plugin.py", line 4, in <module>
    import matplotlib.pyplot as plt
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/__init__.py", line 1131, in <module>
    rcParams = rc_params()
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/__init__.py", line 975, in rc_params
    return rc_params_from_file(fname, fail_on_error)
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/__init__.py", line 1100, in rc_params_from_file
    config_from_file = _rc_params_in_file(fname, fail_on_error)
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/__init__.py", line 1018, in _rc_params_in_file
    with _open_file_or_url(fname) as fd:
  File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
    return self.gen.next()
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/__init__.py", line 1000, in _open_file_or_url
    encoding = locale.getdefaultlocale()[1]
  File "/usr/lib/python2.7/locale.py", line 543, in getdefaultlocale
    return _parse_localename(localename)
  File "/usr/lib/python2.7/locale.py", line 475, in _parse_localename
    raise ValueError, 'unknown locale: %s' % localename
ValueError: unknown locale: UTF-8

任何意见将不胜感激。谢谢。

检查您当前的 shell 环境,这些变量:LC_ALLLC_CTYPELANGLANGUAGE

set | grep -a '^LC_ALL=.'; set | grep -a '^LC_CTYPE=.';
set | grep -a '^LANG=.'; set | grep -a '^LANGUAGE=.'

可能第一个打印的行将包含其中一个等于"UTF-8"的变量。这是错误的。

适当的区域设置应具有语言和可选的国家/地区和编码规范,例如"en"或"en_US"或"ru_RU"。UTF-8'。有一个特殊的区域设置"C"用作回退。

因此,您可以在/etc/default/locale中永久重新定义您的区域设置(不要忘记重新加载您的设置,最简单的方法是注销/登录),或者只是为特定命令覆盖它:

> LC_ALL=C python python/classify.py --print_results examples/images/cat.jpg foo

关于 libdc1394:如果您不需要与 FireWire 交互,请检查 ctypes 错误:libdc1394 错误:无法初始化 libdc1394

最新更新