TensorFlow 2.0によるディープラーニング:知っておくべきことすべて

公開: 2021-01-05

TensorFlowは、Googleによる機械学習フレームワークです。 これは主にディープラーニング関連のタスクに使用され、他のGoogleAPIともシームレスに統合されます。 TensorFlowは、明らかに現在業界で最も使用されているディープラーニングライブラリの1つであり、学ぶ価値があります。

このチュートリアルを終了するまでに、次の知識が身に付きます。

  • TensorFlowとは何ですか?
  • TF 2.0の新機能は何ですか?
  • TensorFlowとKeras
  • TensorFlowのインストール
  • TensorFlowの画像分類子

目次

TensorFlowとは何ですか?

TensorFlowは、Googleによってオープンソースのディープラーニングライブラリとして開始され、現在はエンドツーエンドの機械学習プロセスのための完全なフレームワークです。 Googleがこの名前を選んだ理由と、「Tensor」の意味について疑問に思われるかもしれません。

テンソルとは何ですか?

テンソルは事実上多次元配列であり、多次元配列に対して複雑な操作を実行できます。 ただし、これらは単なるN次元配列ではありません。

テンソルには、内積、加算、行列乗算などの変換も含まれます。

しかし、なぜそれらは重要なのでしょうか?

テンソルは新しいものではありません。 それらは長い間使用されてきましたが、データが通常巨大で多次元であるディープラーニングの領域でそれらの特性が大いに活用されています。

Numpy配列と同様に、テンソルにも形状とデータ型があります。 すべてのテンソルはPythonの数値や文字列のように不変です。テンソルの内容を更新することはできず、新しいテンソルを作成するだけです。

しかし、通常のNumpyアレイとの違いは、GPUメモリと計算能力を利用できることです。これは、データが高次元でサイズが数百万以上の場合に最も重要です。

テンソルは、FacebookのPytorchやGoogleのTensorFlowなどのディープラーニングフレームワークで非常に使用されており、それらにちなんで名付けられています。

Googleは、Tensor Processing Unit(TPU)と呼ばれる別のAIアクセラレーターも開発しました。特に、最適化を次のレベルに引き上げるTensorFlow用です。

読む:ディープラーニングの正則化

TF2.0の新機能

Googleは、2015年にGoogleBrainTeamによってTensorFlow1の最初のバージョンをリリースしました。

TensorFlow 1.xを使用してニューラルネットワークを作成することは、多くのコードを記述する必要があるため、簡単な作業ではありませんでした。

遅延評価と先行評価

TensorFlow 1.xでは、「グラフ」の出力を生成するために、セッションを作成してそれらのセッションを実行する必要がありました。 以下のコードでこれを理解しましょう

tensorflowをtfとしてインポートします

a = tf.constant(1)
b = tf.constant(2)
c = tf.add(a、b)
print(c)

上記のコードを実行しても、必要な出力、つまり3は得られません。これは、TensorFlow1.xがセッションで機能したためです。

セッションは、実行する必要のあるすべての変数と変換を含む環境の一種です。

変換のグラフが作成されましたが、tf.session.run()を実行して具体的に呼び出されるまで評価されませんでした。

したがって、上記のコードは、次の場合に期待するものを返します。

tf.Session.run(c)

これは遅延評価と呼ばれます。 実行するように特に指示されるまで、怠惰に待機します。

この長くて複雑なプロセスを解決する必要があったため、TensorFlow2.xが必要になりました。

TF 2.xには、デフォルトでEager評価が付属しているため、プロセスのコーディングと実行が非常に簡単になります。

現在セッションはなく、TF 1.xで100行かかったニューラルネットワークトレーニングは、TF2.xでは20行未満しかかかりません。

TensorFlowの熱心な実行は、グラフを作成せずに操作をすぐに評価する命令型プログラミング環境です。操作は、後で実行する計算グラフを作成する代わりに、具体的な値を返します。

これにより、TensorFlowとデバッグモデルの使用を簡単に開始でき、定型文も削減されます。

TensorFlowとKeras

問題は、実際にはTensorFlowとKerasではありません。 Kerasを使用したTensorFlowです。 KerasはTensorFlow1.xを介して高レベルのAPIを提供し、それを使用して非常に簡単に操作できるようにしました。

TF 2.0により、TensorFlowは正式にKerasをtf.kerasを使用したモデル設計とトレーニング用のAPIの一部にしました。

以前にKerasで実行されていたすべてのコードは、TF 2.0のtf.kerasで実行することをお勧めします。これにより、次のようなすべてのTensorFlowコンポーネントとエコシステムを使用できるようになります。

  • TensorFlowモデルをシームレスに提供/デプロイするために使用されるTensorFlowサービング。
  • TensorFlow Liteは、AndroidおよびIOSで実行できるTensorFlowのモバイルバージョンです。
  • TensorFlow.jsは、低レベルのJavaScript線形代数ライブラリまたは高レベルのレイヤーAPIのいずれかを使用してモデルを構築およびトレーニングできるようにするAPIのコレクションです。 したがって、ディープラーニングモデルをトレーニングしてブラウザで実行できます。
  • TensorBoardは、TensorFlowプログラムを理解、デバッグ、最適化するための視覚化ツールのスイートです。

TensorFlowのインストール

機械学習を初めて使用する場合は、ColabNotebookを開くのが最も簡単な方法です。 https://colab.research.google.com/にアクセスして、「NewPython3Notebook」をクリックするだけです。

カーネルが右上に「接続済み」と表示されていることを確認します。 朗報です。TensorFlowはGoogleColabにプリインストールされています。

出来上がり! これで準備は完了です。

正しいバージョンを使用しているかどうかを確認するには、以下のスニペットを実行します。

tensorflowをtfとしてインポートします
tf .__ version__

2.0.0を超えるバージョンが表示されれば、問題ありません。

TensorFlowの画像分類子

次に、ディープラーニングの問題の「HelloWorld」であるMNISTデータセットについて見ていきましょう。

MNISTデータセットで予測する短いニューラルネットワークを構築します。 以下の手順に従います。

  1. 画像を分類するニューラルネットワークを構築します。
  2. ニューラルネットワークをトレーニングします。
  3. モデルの精度を評価する

TensorFlowをインポートしています。

tensorflowをtfとしてインポートします

MNISTデータをロードしています。

mnist = tf.keras.datasets.mnist

(x_train、y_train)、(x_test、y_test)= mnist.load_data()
x_train、x_test = x_train / 255.0、x_test / 255.0

レイヤーを積み重ねてtf.keras.Sequentialモデルを構築します。

モデルをトレーニングするには、オプティマイザーと損失関数も選択する必要があります。

model = tf.keras.models.Sequential([
tf.keras.layers.Flatten(input_shape =(28、28))、
tf.keras.layers.Dense(128、activation ='relu')、
tf.keras.layers.Dropout(0.2)、
tf.keras.layers.Dense(10)
])

スパースカテゴリクロスエントロピー損失関数の定義。

loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits = True)

モデルのコンパイル。

model.compile(optimizer ='adam'、
損失=loss_fn、
メトリック=['精度'])

5エポックでモデルをトレーニングします。

model.fit(x_train、y_train、epochs = 5)

モデルの評価。

model.evaluate(x_test、y_test、verbose = 2)

313/313 – 0s –損失:0.0825 –精度:0.9753

[0.082541823387146、0.9753000140190125]

画像分類器は、このデータセットで最大98%の精度にトレーニングされています。

行く前に

TensorFlow 2は、熱心な実行、直感的な高レベルAPI、あらゆるプラットフォームでの柔軟なモデル構築などの更新により、シンプルさと使いやすさに重点を置いています。

TensorFlowは、最近のディープラーニングタスクに最適なライブラリ/ツールです。 他の最も使用され、人気のあるライブラリは、FacebookのPyTorchです。

TensorFlowの拡張されたエコシステムは、ディープラーニングの旅を始めるのに最適な場所です。 理解しやすく、さらに重要なことに、実装も簡単です。

開始するのに最適な場所は、ユーザーフレンドリーなSequentialAPIを使用することです。 ビルディングブロックをつなぎ合わせることでモデルを作成できます。 ディープラーニング手法の詳細をご覧ください。

結論

これで、そこにあるすべての主要なディープラーニングフレームワークの詳細なアイデアが得られたので、十分な情報に基づいて決定を下し、プロジェクトに最適なものを選択できます。

ディープラーニングと人工知能について詳しく知りたい場合は、機械学習とAIプログラムのPGディプロマをチェックしてください。このプログラムは、働く専門家向けに設計されており、30以上のケーススタディと課題、25以上の業界メンターシップセッション、5以上の実践的なハンドを提供します。 -キャップストーンプロジェクトでは、450時間以上の厳格なトレーニングとトップ企業との就職支援。

未来のキャリアに備える

機械学習と人工知能におけるPGディプロマ
もっと詳しく知る