らんだむな記憶

blogというものを体験してみようか!的なー

octave更新

有名な(?)機械学習のオンライン講座を受講中に詰まる。エラーが起こるのだ。軽くggって修正するとエラーは起こらなくなったが、やはり肝心のグラフのプロット結果が出力されない。困った...。

Ubuntu14.04LTS on VirtualBoxなのが問題かも... なんかたまにwarning出るし。と思いつつも、バージョンのせいか?と現行のoctave 3.8.1を最新のoctave 4.0.0に置き換えることを検討。

How to install Octave 4.0.0 in Ubuntu 14.04 - Ask Ubuntuを参考に、

$ sudo apt-get build-dep octave
$ sudo apt-get install gcc g++ gfortran make libblas-dev liblapack-dev libpcre3-dev libarpack2-dev libcurl4-gnutls-dev epstool libfftw3-dev transfig libfltk1.3-dev libfontconfig1-dev libfreetype6-dev libgl2ps-dev libglpk-dev libreadline-dev gnuplot libgraphicsmagick++1-dev libhdf5-serial-dev openjdk-7-jdk libsndfile1-dev llvm-dev lpr texinfo libglu1-mesa-dev pstoedit libjack0 libjack-dev portaudio19-dev libqhull-dev libqrupdate-dev libqscintilla2-dev libqt4-dev libqtcore4 libqtwebkit4 libqt4-network libqtgui4 libsuitesparse-dev zlib1g-dev libxft-dev autoconf automake bison flex gperf gzip librsvg2-bin icoutils libtool perl rsync tar libqt4-opengl-dev

した。本当は libosmesa6-dev もあったのだが、Re: Compiling for Octave 4.0.0 in ubuntu 14.04 errorにあるように下記のエラーが出て解決できないので諦めた。

The following packages have unmet dependencies:
  libosmesa6-dev : Depends: libosmesa6 (= 10.1.3-0ubuntu0.4) but it is
not going to be installed

この後、

$ ./configure
$ make -j4
$ sudo make install

でインストールした。コンパイルはシングルコアだと泣けるくらい時間かかってたので4コア使うことにした。それでも結構時間かかった...。
起動時には初回はなんかちょっと時間かかって、暫くすると、「おっ、初めてだね?」という感じのメッセージの書かれたダイアログが起動。ってか、GUIついたのか...。
で、問題のコードを実行するが、やっぱりプロットされない...。グラフィックカードに関して、互換ドライバで動かしているのが何か悪さを?ということで、不本意だが、Windowsoctaveも入れる。ホスト環境には極力開発環境的なものは入れなくないのだが...。octave.vbs とかキモぃなと思いながら(偏見)、octave.bat を起動。
で問題のコードを実行。...いやいや、最初のダイアログで固まるやん...。と思ったが、どっかに初回は遅いこともあるみたいなことが書いてあった気がするので、1分くらい待ってみた。なんか動いた。なんなんだ...。でも、問題は解決しなかった。

ここまでくると、コードのad-hoc修正が違うとしか。と思うが、浅学なので分からん。講座のdiscussionのページを開く。特に誰の意見も聞きたくなかったので、初めて開いたのだが、同じトラブルに遭遇した受講生の質問と回答ページがあった。
MATLAB/octaveのバージョンによっては起こる問題ということでコード修正案が書いてあって、それで修正したら、Ubuntu14.04LTS on VirtualBox上でのoctave 4.0.0で問題なく動作した。他の組み合わせはもう面倒だから見ていない。
きっと大分前からの問題だと思うし、ファイルを修正しておいてくれよな...orz 或は、自分たちで解決するところも含めて講座内容なのだってことなんだろうか。
まぁ、得たものは最新のoctaveだけか。なんとなく無意味にMATLABが欲しくなってきた。