こんにちは!当社でインターン生8ヶ月目の國井です。
前回はRuby技術者認定試験のコラムについて書きましたが、今回はAIに挑戦してみました。
https://www.udemy.com/tensorflow-advanced/
コースを進めて
このコースでは、以下の8つのセクションによって構成されていました。
- はじめに
- 環境構築(Python、Anaconda、TensorFlow CPU版のインストール)
- 【オプション】TensorFlow GPU版のセットアップ(NVIDIA製GPU搭載マシン使用者のみ。非搭載の方はスキップしてください)
- 画像分類AI自作にチャレンジ
- データの工夫による精度向上にチャレンジしてみよう
- 推定プログラムを作成しよう
- FlaskでWebアプリ化しよう!
- ボーナスセクション
これらのセクションで進めたこと、知ったことについて書いていきます!
環境構築
この教材ではAnaconda上で教材を進めるとのことでした!
以下のリンクのアーカイブから、Anaconda5.0.0、Python3.6でインストールしました。
https://repo.continuum.io/archive/
次に、Anaconda上でTensorFlowという機械学習用のライブラリをインストールします
その後、TensorFlowのGPU版のインストールでした。
しかし、NVIDIA製のGPUが必要とのことなので、私はスキップしました。
画像分類
作成するアプリケーションでは、「サル」、「イノシシ」、「カラス」のそれぞれ100枚の画像を、
機械学習して、モデル(分類器)を用いて、カメラなどで作成した写真を通して評価する、というものです
アプリの開発フローとしては、
- データの収集・生成
- データの前処理
- モデルを定義
- トレーニング(教師あり学習)
- テスト
- 評価
という流れです。
1, 2 データの生成
- pillow:pythonの画像を扱うライブラリ
- numpy:数値計算を効率的に行うための拡張モジュール
- scikit-learn:オープンソース機械学習ライブラリ
の3つのライブラリを使用しました
3, 4 トレーニングしたデータをテスト・実行
- Keras:ニューラルネットワークライブラリ
こちらのライブラリでは、このURLにあるコードを参考にしました
トレーニングしたモデルの結果を、model.save
で、.h5
という拡張子で保存しました。
推定プログラムを作成する
- パッケージのインポート
- 変数の初期化
- モデル定義、パラメータのロード(
h5
ファイル) - 推定処理の実行
出力結果としては、一番値の大きい配列の添字(一番確率が高いもの)を返すことで推定しました
Flaskでアプリ化しよう
Flaskとは…
プログラミング言語Python用の、軽量なウェブアプリケーションフレームワーク
このFlaskを用いてWebアプリにしました!
学んだこと
- データのクローリング、モデルの生成
- Kerasを使った機械学習
- Flaskを使ったWebへのアップロード
感想
もともと機械学習には興味があったので、Udemyでこの講義を受けることができてとても勉強になりました。
しかし、Pythonの文法を全く理解しておらず、ライブラリを知らない状態での受講は調べる事が多かったです。
これからは、Pythonの文法も勉強しながら、ライブラリの使い方や機械学習がどのように行われているか
についても学習を進めていく必要があると感じました。
ただ、RubyとPythonの文法には色々と違う部分も多いのですが、
メソッドの働きなどは基本的に変わらないので、コードを読むことについてはそこまで辛く感じませんでした。
Rubyとは異なる視点でコードを書くことは色々と考えさせられるところがあったので
Pythonの勉強も進めると、さらにRubyの考え方を知る事ができるのではないかと思いした。
仲間を募集
『WEBテクノロジーで社会に幸せを作る!』そんな想いに共感してくれる仲間を応募しています。
◆インターン採用はこちらから
◆新卒・既卒・第二新卒採用はこちらから