LoginSignup
10
9

More than 1 year has passed since last update.

ニューラルネットワーク自動生成アプリ(Google Colaboratory)

Last updated at Posted at 2018-07-08

はじめに

今回は、一切プログラムやコマンドを書かずに、機械学習プログラムを作成するCGIアプリを作成してみました。

Make NN model
(学生時代の研究室サーバに立てているので動かなくなってるかも)

スクリーンショット 2018-07-08 17.24.42.png

この記事は、とりあえず動かしてみたいという方向けに書いているので、ニューラルネットワークの説明はありません。

また、Google Colaboratoryと呼ばれるものを使うので、どんなパソコンの環境でも行うことができます。

Google Colaboratoryについて

簡単に説明すると、機械学習(プログラミング)を行うことができるWebページのようなものです。

colab_basic.png
引用:Google Colabの知っておくべき使い方 – Google Colaboratoryのメリット・デメリットや基本操作のまとめ

以下のような特徴が上げられます。

  • GPU(機械学習の計算を速く行うためのもの)を無料で使える

  • 環境構築(面倒なソフトウェアのインストール)が簡単

今回はそこまで時間がかかる計算ではないので、GPUは使用しません。

詳しいことは既に他の方が紹介されているので割愛します。

【秒速で無料GPUを使う】TensorfFow/Keras/PyTorch/Chainer環境構築 on Colaboratory

セットアップ

Google Colaboratoryの準備を行います。

Googleアカウントを持っていることを前提に、まずは、Googleドライブを開いてください。

マイドライブで、右クリック -> その他 -> アプリを追加と進んでください。

開いた画面で、colabolatoryと検索し接続をクリックしてください。

これでGooglecolabが使えるようになりました。

マイドライブに戻り、右クリック -> その他 -> Colaboratoryと進んでください。

開いた画面で、ランタイム -> ランタイムのタイプを変更と進み、ランタイムのタイプをPython3に変更し保存してください。

以上で終了です。

プログラムの自動生成

ニューラルネットワークのプログラム(データはiris)を自動生成するアプリを作っています。

Make NN model

こちらで、エポック数(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を押してください。

すると、精度がでます。

スクリーンショット 2018-07-08 0.33.13.png スクリーンショット 2018-07-08 0.34.16.png

最後に

この記事の目的はCGIを使ったアプリ作りが目的でした。

その過程でGoogle colabという面白いものを見つけたので、使ってみました。

以後、アプリは他のモデルのプログラムも自動生成できるようにしていければいいなと思っています。

参考

【秒速で無料GPUを使う】TensorfFow/Keras/PyTorch/Chainer環境構築 on Colaboratory
PyTorchでシンプルな多層ニューラルネットワークを作ろう

10
9
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
10
9