Googleアカウントさえあれば、Googleが用意する高性能マシン上でなでしこを動かすことができます。
Colabを始めるには、まず以下のWebサイトにアクセスし、Googleアカウントでログインします。そして、新規ノートブックをさくせいします。
Colabではなでしこを実行できるNode.jsエンジンが最初からインストールされています。そのため、以下のコマンドを1回実行するだけで、PC版なでしこ(cnako3)のコマンドが使えるようになります。
! npm install -g nadesiko3
上記コマンドを入力したら実行ボタンを押します。すると、なでしこのコマンド(cnako3)が使えるようになります。
なでしこのコマンドを1行実行するには、以下のように書きます。
!cnako3 -e "1+2*3を表示。"
あるいは・・・
!cnako3 -e "3回、「🐕わん」と表示。"
このように、「!cnako3 -e "xxxx"」と書くとなでしこのプログラムを一行実行できます。
以下のように書くと、なでしこのソースコードをファイル「a.nako3」に保存できます。
%%file a.nako3 3回繰り返す 「😸にゃー」と表示。 ここまで。
続けて、以下のコマンドを実行すると、保存したプログラムを実行できます。
!cnako3 a.nako3
ちょっと工夫すると、Colabにサーバーを立ててチャットサーバーとして利用できます。
以下のコマンドをColab上で実行します。
!/bin/bash -c "$(curl -fsSL https://n3s.nadesi.com/plain/colab_install_websocket.sh)"
(2022/07/01追記) なお、多くの部分で下記の記事が参考になるのですが、Cloudflaredのインストール方法が古くなっています。
# 以下のコマンドでcloudflaredをインストールしてください。 # cloudflared をインストールする ! apt update ! wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb ! sudo dpkg -i cloudflared-linux-amd64.deb
また、チャットのプログラムも、以下のものを利用してください。
上記cloudflaredをインストールした後、以下のコマンドを実行します。
! npm install -g nadesiko3 ! $(npm -g bin)/nako3server & cloudflared tunnel --url localhost:3000
そして、Colabに表示された、https から始まるアドレスにアクセスしてください。以下の赤丸で囲ったURLです。
同じように、なでしこのローカルエディタも使えます。
! npm install -g nadesiko3 ! $(npm -g bin)/nako3edit & cloudflared tunnel --url localhost:8888
次に機械学習を実践してみましょう。以下のコマンドを実行すると、なでしこの機械学習ライブラリをインストールできます。
!npm install nadesiko3-ml
ライブラリをインストールしたら、プログラムを作りましょう。
内容はともかく、以下のプログラムを実行すると「xor.nako3」というファイルを作成します。
%%file xor.nako3 !「nadesiko3-ml」を取り込む。 # SVMでXORデータを学習する例 XORデータ=[[0, 0], [1, 1], [1, 0], [0, 1]] XORラベル=[0,0,1,1] # --- SVMを使う場合 --- {}でSVM開く # 学習 XORデータとXORラベルで学習。 # 予測 A=[[0,0],[1,1],[1,0]]で予測 AをJSONエンコードして表示。# [0,0,1]
実行してみましょう。
! cnako3 xor.nako3
すると、学習結果である[0,0,1]と表示されます。うまく動いたでしょうか?
続いて、機械学習の初歩、アヤメの分類データを試してみましょう。
%%file iris.nako3 # SVMでIrisデータを学習する例 !「nadesiko3-ml」を取り込む {'kernel':'RBF', 'type':'C_SVC'}でSVM開く # Irisデータを取得して、ランダムに分割する Y=アヤメデータ取得。 R=Y['データ']とY['ラベル']を0.8でデータランダム分割 # 学習 R['学習']['データ']とR['学習']['ラベル']で学習。 # 予測 PRED=R['テスト']['データ']で予測。 # 正解率を求める R['テスト']['ラベル']とPREDで正解率計算して表示。
プログラムを保存したら以下で実行できます。
!cnako3 iris.nako3
すると・・・以下のように0.96の確率で分類できたことが分かります。
0.9666666666666667