LoginSignup
2
1

More than 5 years have passed since last update.

Labellioで作った分類器を自前のubuntuで動かそうとした時に出たエラーと解決策

Posted at

背景

aplacaさんのLabellioという便利なサービスを使って作ったモデルを自分のサーバーに載せたいと思いましたが、Caffeのインストール時(?)にハマったので、解決策をメモしておきます。

注意

原因の究明まで出来ていません。
こんな状態で曖昧な情報を公開するのは良くないと思いますが、同じ状態で困っている人が居るかもしれませんので、対処法として公開しておきます。

環境構築&問題にぶつかるまでの流れ

  1. labbelioで分類器作ってみた
  2. 作ったモデルをWebで公開したい(公開の方法はこちら
  3. ubuntuサーバー持ってない
  4. CentOS6で頑張ろうとしたが挫折した
  5. konohaでubuntu14.04を借りた
  6. こちらの記事を参考にインストールしていった
  7. caffeのインストールは出来た(「make runtest」は通った)
  8. app.pyを実行すると、こんなエラー出た
Gdk-CRITICAL **: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed
Traceback (most recent call last):
  File "app.py", line 8, in <module>
    from labellio import Classifier, Config, ImageLoader, Label
  File "/usr/local/lib/python2.7/dist-packages/labellio/__init__.py", line 2, in <module>
    from labellio.classifier import Classifier
  File "/usr/local/lib/python2.7/dist-packages/labellio/classifier.py", line 6, in <module>
    from labellio.net import Net
  File "/usr/local/lib/python2.7/dist-packages/labellio/net.py", line 4, in <module>
    import caffe
  File "/root/caffe/python/caffe/__init__.py", line 1, in <module>
    from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver
  File "/root/caffe/python/caffe/pycaffe.py", line 15, in <module>
    import caffe.io
  File "/root/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 93, in reset_plugins
    _load_preferred_plugins()
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 73, 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 85, in _set_plugin
    use_plugin(plugin, kind=plugin_type)
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 255, in use_plugin
    _load(name)
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/manage_plugins.py", line 299, in _load
    fromlist=[modname])
  File "/usr/local/lib/python2.7/dist-packages/skimage/io/_plugins/matplotlib_plugin.py", line 3, in <module>
    import matplotlib.pyplot as plt
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 114, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
    globals(),locals(),[backend_name],0)
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_gtk3agg.py", line 11, in <module>
    from . import backend_gtk3
  File "/usr/local/lib/python2.7/dist-packages/matplotlib/backends/backend_gtk3.py", line 58, in <module>
    cursors.MOVE          : Gdk.Cursor.new(Gdk.CursorType.FLEUR),
TypeError: constructor returned NULL

解決策

https://github.com/BVLC/caffe/issues/861
ここを参考にして、実行時にMPLBACKEND=Aggを付けると動きました。

こんな感じ→「MPLBACKEND=Agg python app.py

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1