はじめに
今回は、一切プログラムやコマンドを書かずに、機械学習プログラムを作成するCGIアプリを作成してみました。
Make NN model
(学生時代の研究室サーバに立てているので動かなくなってるかも)
この記事は、とりあえず動かしてみたいという方向けに書いているので、ニューラルネットワークの説明はありません。
また、Google Colaboratoryと呼ばれるものを使うので、どんなパソコンの環境でも行うことができます。
Google Colaboratoryについて
簡単に説明すると、機械学習(プログラミング)を行うことができるWebページのようなものです。
引用:Google Colabの知っておくべき使い方 – Google Colaboratoryのメリット・デメリットや基本操作のまとめ
以下のような特徴が上げられます。
-
GPU(機械学習の計算を速く行うためのもの)を無料で使える
-
環境構築(面倒なソフトウェアのインストール)が簡単
今回はそこまで時間がかかる計算ではないので、GPUは使用しません。
詳しいことは既に他の方が紹介されているので割愛します。
【秒速で無料GPUを使う】TensorfFow/Keras/PyTorch/Chainer環境構築 on Colaboratory
セットアップ
Google Colaboratoryの準備を行います。
Googleアカウントを持っていることを前提に、まずは、Googleドライブを開いてください。
マイドライブで、右クリック -> その他 -> アプリを追加
と進んでください。
開いた画面で、colabolatory
と検索し接続
をクリックしてください。
これでGooglecolabが使えるようになりました。
マイドライブに戻り、右クリック -> その他 -> Colaboratory
と進んでください。
開いた画面で、ランタイム -> ランタイムのタイプを変更
と進み、ランタイムのタイプをPython3
に変更し保存
してください。
以上で終了です。
プログラムの自動生成
ニューラルネットワークのプログラム(データはiris)を自動生成するアプリを作っています。
こちらで、エポック数(epoch)
、学習率(learning rate)
、層1のニューロン数(Layer1 neurons)
、層2のニューロン数(Layer2 neurons)
、活性化関数の有無(ReLU)
を指定するだけです。
送信
を押して表示されたプログラムを使います。
とりあえず、以下のような条件で95%以上の精度が出ました。
- epoch : 3000
- learning rete : 0.01
- Layer1 neurons : 10
- Layer1's ReLU : チェック
- Layer2 neurons : 8
- Layer2's ReLU : チェック
プログラムの詳細を知りたい方は、こちらをご覧ください。
実行
では、実行するためにGoogle colabにコピペしていきましょう。
最初に、フレームワーク(PyTorch0.4.0)をインストールします。
以下のプログラムをGoogle colabにコピペして、Shift + Enter
を押してください。
from os import path
from wheel.pep425tags import get_abbr_impl, get_impl_ver, get_abi_tag
platform = '{}{}-{}'.format(get_abbr_impl(), get_impl_ver(), get_abi_tag())
accelerator = 'cu80' if path.exists('/opt/bin/nvidia-smi') else 'cpu'
!pip install -q http://download.pytorch.org/whl/{accelerator}/torch-0.4.0-{platform}-linux_x86_64.whl torchvision
import torch
print(torch.__version__)
print(torch.cuda.is_available())
False
と出力されればOKです。(GPUを使わないという意味です。)
そして、Make NN model
で作成したプログラムをコピペして、Shift + Enter
を押してください。
すると、精度がでます。
最後に
この記事の目的はCGIを使ったアプリ作りが目的でした。
その過程でGoogle colabという面白いものを見つけたので、使ってみました。
以後、アプリは他のモデルのプログラムも自動生成できるようにしていければいいなと思っています。
参考
【秒速で無料GPUを使う】TensorfFow/Keras/PyTorch/Chainer環境構築 on Colaboratory
PyTorchでシンプルな多層ニューラルネットワークを作ろう