Python
 Computer >> コンピューター >  >> プログラミング >> Python

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メソッドを呼び出すことで、各レイヤーの種類・出力形状・パラメータ数といったアーキテクチャの概要が出力されます。

  1. PythonとKerasを使ってモデルの重みを手動で保存・復元する方法

    TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムや深層学習アプリケーションの実装などに広く利用されています。研究用途から本番環境まで、さまざまな場面で活用されています。Kerasは、ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System)プロジェクトの研究の一環として開発されました。KerasはPythonで記述された深層学習APIであり、機械学習の問題解決を効率的に行うための生産性の高いインターフェースを備えた

  2. Kerasを使ってPythonでモデルをプロットする方法をわかりやすく解説

    TensorFlowとはTensorFlowは、Googleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用できます。研究目的から本番環境での運用まで対応しており、複雑な数値計算を高速に実行するための最適化技術が数多く組み込まれています。TensorFlowにおける「テンソル(Tensor)」は、データを扱うための基本的なデータ構造です。テンソルは多次元配列(またはリスト)であり、データフローグラフと呼ばれる計算グラフのノード同士をエッジでつ