Raspberry Pi で Coursera Machine Learning をやりたい人のための記事です。Octaveでグラフが表示されないエラーで躓いてる方は、Octaveの設定までスキップしてください。
まずRPiでできるのかという疑問があるかもしれません。できます。 なんなら Windows/Mac より Octave の環境構築がかんたんでおすすめの選択肢です。
環境
Board: Raspberry Pi 4 Model B RAM 4GB
OS: Raspberry Pi OS (32-bit) with desktop 2020-05-27
Raspberry Pi 3または2でもたぶん動きますが、後々計算に時間がかかるので新しく買うなら4がいいです。
ここで注意ですが、Raspberry Pi OS には
i. with desktop and recommended software
ii. with desktop
iii. Lite
の3種類あります。グラフの描画にデスクトップ環境が必要なのでiまたはiiを選びます。 Coursera ML の課題をこなすだけならiiで十分です。
Octaveのインストール
$ sudo apt update $ sudo apt upgrade $ sudo apt install octave
ここに書いてあるとおりですが、apt upgradeを追加しています。やらなくてもできるとは思いますが、やらずに試してないので書いています。
Octaveの設定
$ vi $HOME/.octaverc setenv('GNUTERM','qt') graphics_toolkit("gnuplot")
エラーでお困りの皆さん、おまたせしました。ホームディレクトリに .octaverc ファイルを作って、上の2行を書き込んで保存します。テキストエディタはviでなくてもなんでもよいです。これをやらないと、以下のようなエラーがメッセージが出力されてグラフが表示されません。
warning: opengl_renderer: Error 'invalid enumerant' (1280) occurred in init_gl_context warning: called from ex1 at line 50 column 1
基本的にこれだけでOKです。
Raspberry Pi 4 なら計算にあまりにも時間がかかるようなことはありませんでした。もし1時間かかっても終わらないようなときは、コードがバグってるか、ベクトル化していないかのどちらかです。PCのCPUならベクトル化しなくても力技で処理できるかもしれないですが、Raspberry Pi だとコードのベクトル化は必須です。