Pythonモジュール「TensorFlow/Keras」で深層学習(ディープラーニング)を行う方法について入門者向けに使い方を解説します。
【はじめに】TensorFlowとKerasについて
TensorFlowとは、Googleが開発している深層学習(ディープラーニング)を行えるPythonモジュールです。
Kerasは、「TensorFlow」「CNTK」「Theano」といった深層学習モジュールを機械学習モジュールScikit-learnのように簡単に操作するためのモジュールです。
「TensorFlow」「CNTK」「Theano」のうちをどれを動かすかは選択できますが、選択するモジュールは別途インストールしておく必要があります。
– | 主な特徴 |
---|---|
1 | ディープニューラルネットワーク(ディープラーニング)専用の機械学習モジュール。scikit-learnと似た感じで書けるので、他のライブラリと比べても簡単に利用可能 |
2 | MITライセンスなので商用利用可能 |
3 | 情報が多く日本語ドキュメントも充実→公式日本語ドキュメント |
4 | バックエンドに機械学習モジュール「TensorFlow」「CNTK」「Theano」は動いており、どれを使うか選択可能 |
5 | クロスプラットフォームで利用可能(iOS、Android、ブラウザ、Google Cloud、JVM、ラズベリーパイ、Pythonのウェブアプリなど |
6 | 豊富な企業での採用実績(Netflix,Uber,Yelp,Instacart,Zocdoc,Squareなど) |
7 | 複数GPUの並列処理が可能 |
8 | 開発サポートが充実(Googleを中心として、Microsoft、NVida、Amazonなどもサポート→詳細は公式ドキュメント「なぜKerasを使うか?」 |
公式 | Keras日本語公式ドキュメント |

【人気比較】Keras、PyTorch、Tensorflow、Caffe、Theano
Pythonで人気なディープラーニング(深層学習)系フレームワークKeras、PyTorch、Tensorflow、Caffe、Theanoの注目度を比較してみました。
ただし、Kerasには、2つの種類があります。
種類 | 内容 |
---|---|
元のKeras | 通常のモジュールとしてのKeras。pipコマンドでkerasとTensorflowの2つをインストールして「import keras」で呼び出して使います。 |
TensorFlowに組み込まれたKeras | TensorFlowをそのまま使うよりもKerasを通して使うほうが簡単だったため人気が出ました。そこでwの中にKerasが組み込まれています。「import tensorflow.keras」で呼び出しできます。この場合、Tensorflowのみインストールが必要です(Kerasは不要)。 |
本記事では、トラブルが少ない「TensorFlowに組み込まれたKeras」をメインに解説します。
動画解説
本ページの内容は以下動画でも解説しています。d
【基礎編】Kerasの使い方
Kerasの基礎的な使い方について下記に整理しました。
種類 | 項目 |
---|---|
インストール | KerasをMac, Windows環境にインストールする方法を解説します。 |
XOR演算の学習 | 動作確認も兼ねてXOR演演算を学習してみます。 |
モデル構造の可視化 | 作成したモデルの構造を可視化します。 |
学習結果の保存・読み込み | 学習したモデルを外部ファイルに保存したり、それをロードして利用する方法を解説します。 |
画像分類①(手描き数字) | mnistデータセットとMLP(多層パーセプトロン)学習し、手書き文字画像を分類します。 |
学習過程の可視化 | 損失関数、評価関数の推移をグラフ化します。 |
画像分類②(手描き数字) | mnistデータセットとCNN(畳み込みニューラルネットワーク)学習し、手書き文字画像を分類します。 |
画像分類③(CIFAR-10) | CIFAR-10データセットとCNNで学習し、画像認識・分類を行います。 |
画像分類④(CNN) | CNN(畳み込みニューラルネットワーク)で学習し、画像認識・分類を行います。 |
画像分類⑤(VGG16) | VGG16データセットで学習し、画像認識・分類を行います。 |
画像分類⑥(Fine-tuning) | Fine-tuningを使って効率よく学習し、画像認識・分類を行います。 |
画像分類⑦(データの水増し) | 少ない画像データセットを水増しして効率よく学習し、画像認識・分類を行います。 |
画像分類(Webアプリ化) | Kerasで作成した画像分類プログラムをWebアプリ化します。 |
セグメンテーション | – |
敵対的生成モデル | – |
ARMA | 統計モデル |
ARIMA/SARIMA | 統計モデル |
RNN | – |
LSTM | – |
GRU | – |
単語・文章のベクトル化 | word2vec/doc2vecで単語や文章のベクトル化 |
単語の重要度推定 | TFIDFで単語の重要度を推定します。 |
文章の感情推定 | osetiで文章の感情を推定します。 |
文書自動生成 | LSTMで文書を自動生成します。 |
コメント