ブログ

【画像判定AI自作にチャレンジ!】TensorFlow・Keras・Python・Flaskで作る機械学習アプリ開発入門

こんにちは!当社でインターン生8ヶ月目の國井です。

前回はRuby技術者認定試験のコラムについて書きましたが、今回はAIに挑戦してみました。

https://www.udemy.com/tensorflow-advanced/

コースを進めて

このコースでは、以下の8つのセクションによって構成されていました。

  1. はじめに
  2. 環境構築(Python、Anaconda、TensorFlow CPU版のインストール)
  3. 【オプション】TensorFlow GPU版のセットアップ(NVIDIA製GPU搭載マシン使用者のみ。非搭載の方はスキップしてください)
  4. 画像分類AI自作にチャレンジ
  5. データの工夫による精度向上にチャレンジしてみよう
  6. 推定プログラムを作成しよう
  7. FlaskでWebアプリ化しよう!
  8. ボーナスセクション

これらのセクションで進めたこと、知ったことについて書いていきます!

 

環境構築

この教材ではAnaconda上で教材を進めるとのことでした!

以下のリンクのアーカイブから、Anaconda5.0.0Python3.6でインストールしました。

https://repo.continuum.io/archive/

次に、Anaconda上でTensorFlowという機械学習用のライブラリをインストールします

その後、TensorFlowのGPU版のインストールでした。

しかし、NVIDIA製のGPUが必要とのことなので、私はスキップしました。

 

画像分類

作成するアプリケーションでは、「サル」、「イノシシ」、「カラス」のそれぞれ100枚の画像を、

機械学習して、モデル(分類器)を用いて、カメラなどで作成した写真を通して評価する、というものです

アプリの開発フローとしては、

  1. データの収集・生成
  2. データの前処理
  3. モデルを定義
  4. トレーニング(教師あり学習)
  5. テスト
  6. 評価

という流れです。

 

1, 2 データの生成

  • pillow:pythonの画像を扱うライブラリ
  • numpy:数値計算を効率的に行うための拡張モジュール
  • scikit-learn:オープンソース機械学習ライブラリ

の3つのライブラリを使用しました

 

3, 4 トレーニングしたデータをテスト・実行

  • Keras:ニューラルネットワークライブラリ

 

こちらのライブラリでは、このURLにあるコードを参考にしました

トレーニングしたモデルの結果を、model.saveで、.h5という拡張子で保存しました。

 

推定プログラムを作成する

  1. パッケージのインポート
  2. 変数の初期化
  3. モデル定義、パラメータのロード(h5ファイル)
  4. 推定処理の実行

出力結果としては、一番値の大きい配列の添字(一番確率が高いもの)を返すことで推定しました

Flaskでアプリ化しよう

Flaskとは…

プログラミング言語Python用の、軽量なウェブアプリケーションフレームワーク

このFlaskを用いてWebアプリにしました!

http://flask.pocoo.org/

学んだこと

  • データのクローリング、モデルの生成
  • Kerasを使った機械学習
  • Flaskを使ったWebへのアップロード

感想

もともと機械学習には興味があったので、Udemyでこの講義を受けることができてとても勉強になりました。

しかし、Pythonの文法を全く理解しておらず、ライブラリを知らない状態での受講は調べる事が多かったです。

これからは、Pythonの文法も勉強しながら、ライブラリの使い方や機械学習がどのように行われているか

についても学習を進めていく必要があると感じました。

ただ、RubyとPythonの文法には色々と違う部分も多いのですが、

メソッドの働きなどは基本的に変わらないので、コードを読むことについてはそこまで辛く感じませんでした。

Rubyとは異なる視点でコードを書くことは色々と考えさせられるところがあったので

Pythonの勉強も進めると、さらにRubyの考え方を知る事ができるのではないかと思いした。

仲間を募集

『WEBテクノロジーで社会に幸せを作る!』そんな想いに共感してくれる仲間を応募しています。

◆インターン採用はこちらから

インターン採用

◆新卒・既卒・第二新卒採用はこちらから

新卒・既卒・第二新卒

 

お問合せはこちら。
お気軽にご相談ください。

電話アイコン 03-5206-8490
業務および採用に関するお電話はこちら