TensorFlowとPythonでモデルをコンパイルする方法をわかりやすく解説
TensorFlowで作成したモデルは、compileメソッドを使うことで簡単にコンパイルできます。損失関数の計算にはSparseCategoricalCrossentropyメソッドを使用します。
実行環境について
本記事のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)はブラウザ上で直接Pythonコードを実行できるサービスで、面倒な環境構築が一切不要です。さらにGPU(グラフィックス処理ユニット)へ無料でアクセスでき、Jupyter Notebookをベースに構築されています。
モデルのコンパイルコード
print("The model is being compiled")
model.compile(optimizer='adam',loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
print("The architecture of the model")
model.summary()
コード出典:https://www.tensorflow.org/tutorials/images/classification
出力結果
The model is being compiled The architecture of the model Model: "sequential_2" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= rescaling_1 (Rescaling) (None, 180, 180, 3) 0 _________________________________________________________________ conv2d_6 (Conv2D) (None, 180, 180, 16) 448 _________________________________________________________________ max_pooling2d_4 (MaxPooling2 (None, 90, 90, 16) 0 _________________________________________________________________ conv2d_7 (Conv2D) (None, 90, 90, 32) 4640 _________________________________________________________________ max_pooling2d_5 (MaxPooling2 (None, 45, 45, 32) 0 _________________________________________________________________ conv2d_8 (Conv2D) (None, 45, 45, 64) 18496 _________________________________________________________________ max_pooling2d_6 (MaxPooling2 (None, 22, 22, 64) 0 _________________________________________________________________ flatten_1 (Flatten) (None, 30976) 0 _________________________________________________________________ dense_2 (Dense) (None, 128) 3965056 _________________________________________________________________ dense_3 (Dense) (None, 5) 645 ================================================================= Total params: 3,989,285 Trainable params: 3,989,285 Non-trainable params: 0 _________________________________________________________________
コードの解説
- 最適化アルゴリズムには
optimizers.Adamオプティマイザー、損失関数にはlosses.SparseCategoricalCrossentropyを採用しています。 from_logits=Trueを指定することで、モデルの出力がソフトマックス処理前のロジット値であることを示し、損失計算時に自動的に正規化が行われます。metrics引数に'accuracy'を渡すことで、エポックごとの訓練データおよび検証データの精度を確認できます。- モデルのコンパイル完了後、
summaryメソッドを呼び出すことで、各レイヤーの種類・出力形状・パラメータ数といったアーキテクチャの概要が出力されます。
-
PythonとKerasを使ってモデルの重みを手動で保存・復元する方法
TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムや深層学習アプリケーションの実装などに広く利用されています。研究用途から本番環境まで、さまざまな場面で活用されています。Kerasは、ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System)プロジェクトの研究の一環として開発されました。KerasはPythonで記述された深層学習APIであり、機械学習の問題解決を効率的に行うための生産性の高いインターフェースを備えた
-
Kerasを使ってPythonでモデルをプロットする方法をわかりやすく解説
TensorFlowとはTensorFlowは、Googleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用できます。研究目的から本番環境での運用まで対応しており、複雑な数値計算を高速に実行するための最適化技術が数多く組み込まれています。TensorFlowにおける「テンソル(Tensor)」は、データを扱うための基本的なデータ構造です。テンソルは多次元配列(またはリスト)であり、データフローグラフと呼ばれる計算グラフのノード同士をエッジでつ