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

Kerasでコールバックを作成し、Pythonを使ってモデルの重みを保存する方法

TensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装するために広く利用されています。研究用途から本番環境まで対応しており、複雑な数学的演算を高速に処理するための最適化技術を備えているのが特徴です。これは内部でNumPyと多次元配列を使用しているためで、この多次元配列は「テンソル」と呼ばれます。

Windows環境では、以下のコマンドで「tensorflow」パッケージをインストールできます。

pip install tensorflow

テンソルはTensorFlowにおける基本的なデータ構造であり、フロー図(いわゆる「データフローグラフ」)内のエッジをつなぐ役割を担います。テンソルの中身は、多次元配列あるいはリストそのものです。

Kerasとは

Kerasは、ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System)プロジェクトの研究の一環として開発された、Python製のディープラーニングAPIです。機械学習の課題を効率的に解決できる生産性の高いインターフェースを持つ高レベルAPIであり、TensorFlowフレームワークの上で動作します。素早く実験を行えるよう設計されており、機械学習ソリューションの開発・カプセル化に不可欠な抽象化機能とビルディングブロックを提供します。

KerasはTensorFlowパッケージにあらかじめ含まれているため、以下のコードだけで利用を開始できます。

import tensorflow
from tensorflow import keras

以降のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)はブラウザ上でPythonコードを実行できるサービスで、面倒な設定が一切不要なうえ、GPU(グラフィックス処理装置)にも無料でアクセス可能です。ColaboratoryはJupyter Notebookをベースに構築されています。

コード例:チェックポイントコールバックによる重みの保存

print("Set checkpoint path")
checkpoint_path = "training_1/cp.ckpt"
checkpoint_dir = os.path.dirname(checkpoint_path)

print("Creating a callback to save the weights")
cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path, save_weights_only=True, verbose=1)

print("Model is trained with new callback")
model.fit(train_images,
    train_labels,
    epochs=10,
    validation_data=(test_images, test_labels),
    callbacks=[cp_callback])
ls {checkpoint_dir}

コード出典:https://www.tensorflow.org/tutorials/keras/save_and_load

実行結果

上記コードを実行すると、各エポックの終了ごとにチェックポイントが保存され、指定したディレクトリにチェックポイントファイルが出力されます。

コードの解説

  • 学習済みモデルを保存しておけば、ゼロから再学習したり、中断した時点から学習を再開したりすることが可能になります。

  • 「ModelCheckpoint」メソッドは、学習中および学習終了時に継続的にモデルを保存します。

  • この仕組みにより、チェックポイントファイルはエポックごとに自動的に更新されます。

  • ここでは、このモデルを訓練データに対してfit(学習)させています。

  1. Kerasでモデルをグラフとしてプロットし、Pythonで入出力の形状を表示する方法

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

  2. PythonとKerasのFunctional APIを使ってレイヤーを作成する方法を徹底解説

    はじめに TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションの実装など、幅広い用途に活用されています。研究用途から本番環境まで対応しており、複雑な数学的演算を高速に実行するための最適化技術を備えているのが特徴です。 「tensorflow」パッケージは、Windows環境であれば以下のコマンドでインストールできます。 pip install tensorflow Kerasはギリシャ語で「角(つの)」を意味します。Kerasは、ONEIROS(Open-ended