TensorFlow の例
このチュートリアルは、例を通して TensorFlow を簡単に理解できるように設計されています。読みやすくするために、TF v1 と v2 の両方について、説明付きのノートブックとソース コードの両方が含まれています。
TensorFlow に関する明確で簡潔な例を見つけたい初心者に適しています。従来の「生」の TensorFlow 実装に加えて、最新の TensorFlow API プラクティス ( layers
、 estimator
、 dataset
など) も見つけることができます。
更新 (2020/05/16):すべてのデフォルトの例を TF2 に移動します。 TF v1 の例については、ここを確認してください。
チュートリアルのインデックス
0 - 前提条件
- 機械学習の概要。
- MNIST データセットの紹介。
1 - はじめに
- Hello World (ノートブック)。 TensorFlow 2.0+ を使用して「hello world」を出力する方法を学ぶための非常に簡単な例。
- 基本操作(ノートブック)。 TensorFlow 2.0 以降の基本操作をカバーする簡単な例。
2 - 基本モデル
- 線形回帰(ノートブック)。 TensorFlow 2.0+ を使用して線形回帰を実装します。
- ロジスティック回帰(ノートブック)。 TensorFlow 2.0+ を使用してロジスティック回帰を実装します。
- Word2Vec (Word 埋め込み) (ノートブック)。 TensorFlow 2.0+ を使用して、Wikipedia データから Word Embedding Model (Word2Vec) を構築します。
- GBDT (勾配ブースト決定ツリー) (ノートブック)。 TensorFlow 2.0+ を使用して勾配ブースト デシジョン ツリーを実装し、ボストン住宅データセットを使用して住宅価値を予測します。
3 - ニューラル ネットワーク
監督あり
- シンプルなニューラル ネットワーク(ノートブック)。 TensorFlow 2.0 の「レイヤー」API と「モデル」API を使用して、MNIST 数字データセットを分類するための単純なニューラル ネットワークを構築します。
- シンプルなニューラル ネットワーク (低レベル) (ノートブック)。 MNIST 数字データセットを分類するための単純なニューラル ネットワークの生の実装。
- 畳み込みニューラル ネットワーク(ノートブック)。 TensorFlow 2.0+ の「レイヤー」および「モデル」API を使用して、MNIST 数字データセットを分類する畳み込みニューラル ネットワークを構築します。
- 畳み込みニューラル ネットワーク (低レベル) (ノートブック)。 MNIST 数字データセットを分類するための畳み込みニューラル ネットワークの生の実装。
- リカレント ニューラル ネットワーク (LSTM) (ノートブック)。 TensorFlow 2.0 の「レイヤー」と「モデル」API を使用して、MNIST 数字データセットを分類するリカレント ニューラル ネットワーク (LSTM) を構築します。
- 双方向リカレント ニューラル ネットワーク (LSTM) (ノートブック)。 TensorFlow 2.0+ の「レイヤー」と「モデル」API を使用して、MNIST 数字データセットを分類するための双方向リカレント ニューラル ネットワーク (LSTM) を構築します。
- 動的再帰型ニューラル ネットワーク (LSTM) (ノートブック)。 TensorFlow 2.0+ の「レイヤー」および「モデル」API を使用して、動的計算を実行して可変長のシーケンスを分類するリカレント ニューラル ネットワーク (LSTM) を構築します。
監視なし
- 自動エンコーダー(ノートブック)。画像をより低い次元にエンコードして再構築する自動エンコーダーを構築します。
- DCGAN (Deep Convolutional Generative Adversarial Networks) (ノートブック)。ディープ畳み込み敵対的生成ネットワーク (DCGAN) を構築して、ノイズから画像を生成します。
4 - ユーティリティ
- モデル (ノートブック) を保存および復元します。 TensorFlow 2.0+ を使用してモデルを保存および復元します。
- カスタム レイヤーとモジュールを構築します(ノートブック)。独自のレイヤー/モジュールを構築し、それらを TensorFlow 2.0+ モデルに統合する方法を学びます。
- テンソルボード(ノートブック)。 TensorFlow 2.0+ tensorboard を使用して、ニューラル ネットワークの計算グラフ、メトリクス、重みなどを追跡および視覚化します。
5 - データ管理
- データのロードと解析(ノートブック)。 TensorFlow 2.0 で効率的なデータ パイプラインを構築します (Numpy 配列、画像、CSV ファイル、カスタム データなど)。
- TFRecord (ノートブック) をビルドしてロードします。データを TFRecords 形式に変換し、TensorFlow 2.0+ でロードします。
- 画像変換 (つまり、画像拡張) (ノートブック)。 TensorFlow 2.0+ を使用してさまざまな画像拡張技術を適用し、トレーニング用に歪んだ画像を生成します。
6 - ハードウェア
- マルチ GPU トレーニング(ノートブック)。 CIFAR-10 データセット上の複数の GPU を使用して畳み込みニューラル ネットワークをトレーニングします。
TensorFlow v1
TF v1 のチュートリアルのインデックスは、TensorFlow v1.15 の例から入手できます。または、以下の例のリストを参照してください。
データセット
一部の例では、トレーニングとテストに MNIST データセットが必要です。心配しないでください。このデータセットはサンプルの実行時に自動的にダウンロードされます。 MNIST は手書き数字のデータベースです。そのデータセットの簡単な説明については、このノートブックを参照してください。
公式ウェブサイト: http://yann.lecun.com/exdb/mnist/。
インストール
すべてのサンプルをダウンロードするには、このリポジトリのクローンを作成するだけです。
git clone https://github.com/aymericdamien/TensorFlow-Examples
これらを実行するには、TensorFlow の最新バージョンも必要です。インストールするには:
または (GPU サポートあり):
pip install tensorflow_gpu
TensorFlow のインストールの詳細については、TensorFlow インストール ガイドを確認してください。
TensorFlow v1 の例 - インデックス
TF v1 のチュートリアルのインデックスは、TensorFlow v1.15 の例から入手できます。
0 - 前提条件
- 機械学習の概要。
- MNIST データセットの紹介。
1 - はじめに
- Hello World (ノートブック) (コード)。 TensorFlow を使用して「hello world」を出力する方法を学ぶための非常に簡単な例です。
- 基本操作(ノートブック) (コード)。 TensorFlow の基本操作をカバーする簡単な例。
- TensorFlow Eager API の基本(ノートブック) (コード)。 TensorFlow の Eager API を使ってみましょう。
2 - 基本モデル
- 線形回帰(ノートブック) (コード)。 TensorFlow を使用して線形回帰を実装します。
- 線形回帰 (eager API) (ノートブック) (コード)。 TensorFlow の Eager API を使用して線形回帰を実装します。
- ロジスティック回帰(ノートブック) (コード)。 TensorFlow を使用してロジスティック回帰を実装します。
- ロジスティック回帰 (eager API) (ノートブック) (コード)。 TensorFlow の Eager API を使用してロジスティック回帰を実装します。
- 最近隣(ノートブック) (コード)。 TensorFlow を使用して最近傍アルゴリズムを実装します。
- K 平均法(ノートブック) (コード)。 TensorFlow を使用して K-Means 分類器を構築します。
- ランダムフォレスト(ノートブック) (コード)。 TensorFlow を使用してランダム フォレスト分類器を構築します。
- 勾配ブースト デシジョン ツリー (GBDT) (ノートブック) (コード)。 TensorFlow を使用して勾配ブースト デシジョン ツリー (GBDT) を構築します。
- Word2Vec (Word 埋め込み) (ノートブック) (コード)。 TensorFlow を使用して、Wikipedia データから Word Embedding Model (Word2Vec) を構築します。
3 - ニューラル ネットワーク
監督あり
- シンプルなニューラル ネットワーク(ノートブック) (コード)。シンプルなニューラル ネットワーク (別名多層パーセプトロン) を構築して、MNIST 数字データセットを分類します。生の TensorFlow 実装。
- シンプルなニューラル ネットワーク (tf.layers/estimator API) (ノートブック) (コード)。 TensorFlow の「レイヤー」と「推定器」API を使用して、MNIST 数字データセットを分類するための単純なニューラル ネットワーク (別名多層パーセプトロン) を構築します。
- シンプルなニューラル ネットワーク (eager API) (ノートブック) (コード)。 TensorFlow Eager API を使用して、MNIST 数字データセットを分類するための単純なニューラル ネットワーク (別名多層パーセプトロン) を構築します。
- 畳み込みニューラル ネットワーク(ノートブック) (コード)。畳み込みニューラル ネットワークを構築して、MNIST 数字データセットを分類します。生の TensorFlow 実装。
- 畳み込みニューラル ネットワーク (tf.layers/estimator API) (ノートブック) (コード)。 TensorFlow の「レイヤー」と「推定器」API を使用して畳み込みニューラル ネットワークを構築し、MNIST 数字データセットを分類します。
- リカレント ニューラル ネットワーク (LSTM) (ノートブック) (コード)。 MNIST 数字データセットを分類するためのリカレント ニューラル ネットワーク (LSTM) を構築します。
- 双方向リカレント ニューラル ネットワーク (LSTM) (ノートブック) (コード)。双方向リカレント ニューラル ネットワーク (LSTM) を構築して、MNIST 数字データセットを分類します。
- 動的再帰ニューラル ネットワーク (LSTM) (ノートブック) (コード)。動的計算を実行して、異なる長さのシーケンスを分類するリカレント ニューラル ネットワーク (LSTM) を構築します。
監視なし
- 自動エンコーダ(ノートブック) (コード)。画像をより低い次元にエンコードして再構築する自動エンコーダーを構築します。
- 変分自動エンコーダ(ノートブック) (コード)。変分自動エンコーダー (VAE) を構築して、ノイズから画像をエンコードして生成します。
- GAN (敵対的生成ネットワーク) (ノートブック) (コード)。敵対的生成ネットワーク (GAN) を構築して、ノイズから画像を生成します。
- DCGAN (Deep Convolutional Generative Adversarial Networks) (ノートブック) (コード)。ディープ畳み込み敵対的生成ネットワーク (DCGAN) を構築して、ノイズから画像を生成します。
4 - ユーティリティ
- モデル (ノートブック) (コード) を保存および復元します。 TensorFlow を使用してモデルを保存および復元します。
- Tensorboard - グラフと損失の視覚化(ノートブック) (コード)。 Tensorboard を使用して計算グラフを視覚化し、損失をプロットします。
- Tensorboard - 高度な視覚化(ノートブック) (コード)。 Tensorboard をさらに深く掘り下げます。変数、勾配などを視覚化します...
5 - データ管理
- 画像データセット (ノートブック) (コード) を構築します。 TensorFlow データ キューを使用して、画像フォルダーまたはデータセット ファイルから独自の画像データセットを構築します。
- TensorFlow データセット API (ノートブック) (コード)。入力データ パイプラインを最適化するための TensorFlow Dataset API の導入。
- データのロードと解析(ノートブック)。効率的なデータ パイプライン (Numpy 配列、画像、CSV ファイル、カスタム データなど) を構築します。
- TFRecord (ノートブック) をビルドしてロードします。データを TFRecords 形式に変換してロードします。
- 画像変換 (つまり、画像拡張) (ノートブック)。さまざまな画像拡張技術を適用して、トレーニング用に歪んだ画像を生成します。
6 - マルチ GPU
- マルチ GPU (ノートブック) での基本操作(コード)。 TensorFlow にマルチ GPU を導入する簡単な例。
- マルチ GPU (ノートブック) でニューラル ネットワークをトレーニングします(コード)。複数の GPU で畳み込みニューラル ネットワークをトレーニングするための、明確でシンプルな TensorFlow 実装。
他の例
次の例は、TensorFlow の簡素化されたインターフェイスを提供するライブラリである TFLearn からのものです。多くの例と、事前に構築された操作とレイヤーが含まれているので、ご覧ください。
チュートリアル
- TFLearn クイックスタート。具体的な機械学習タスクを通じて TFLearn の基礎を学びます。ディープ ニューラル ネットワーク分類器を構築してトレーニングします。
例
- TFLearn の例。 TFLearn を使用した例の大規模なコレクション。