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

TensorFlowでPython製のモデルをエクスポートする方法|手順とコード例を解説

TensorFlowは、Googleが提供するオープンソースの機械学習フレームワークです。Pythonと組み合わせて使用することで、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広いタスクに対応できます。研究開発から本番運用まで、さまざまな場面で活用されています。

TensorFlowの主な特徴

TensorFlowには、複雑な数学的演算を高速に処理するための最適化技術が組み込まれています。これは内部的にNumPyと多次元配列を使用しているためです。この多次元配列は「テンソル」と呼ばれます。

主な特徴は次のとおりです。

  • 深層ニューラルネットワークの構築・学習・推論をサポート
  • 高いスケーラビリティと、豊富な定番データセットを同梱
  • GPU計算による高速化と、リソース管理の自動化
  • 多数の機械学習ライブラリを搭載し、ドキュメントも充実

TensorFlowのインストール

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

pip install tensorflow

テンソルとは何か

テンソルはTensorFlowにおける基本のデータ構造で、データフローグラフのエッジ(ノード間の接続)をつなぐ役割を担います。その実体は、多次元配列あるいはリストです。

なお、本記事のコードはGoogle Colaboratory上で実行しています。Google Colabを利用すれば、ブラウザだけでPythonコードを実行でき、面倒な環境設定は不要です。さらにGPUにも無料でアクセスできます。ColaboratoryはJupyter Notebookをベースに構築されています。

モデルをエクスポートするコード例

続いて、学習済みモデルをエクスポートし、生の文字列をそのまま扱えるようにするコードを見てみましょう。

print("モデルをエクスポートします")
export_model = tf.keras.Sequential(
    [binary_vectorize_layer, binary_model,
    layers.Activation('sigmoid')])
print("モデルをコンパイルします")
export_model.compile(
    loss=losses.SparseCategoricalCrossentropy(from_logits=False),
    optimizer='adam',
    metrics=['accuracy'])
print("`raw_test_ds`(生の文字列を含むデータセット)でモデルを評価します")
loss, accuracy = export_model.evaluate(raw_test_ds)
print("モデルの精度 : {:2.2%}".format(binary_accuracy))

コード出典:https://www.tensorflow.org/tutorials/load_data/text

実行結果

モデルをエクスポートします
モデルをコンパイルします
`raw_test_ds`(生の文字列を含むデータセット)でモデルを評価します
250/250 [==============================] - 4s 13ms/step - loss: 0.5296 - accuracy: 0.8078
モデルの精度 : 81.10%

コードの解説

  • データセットをモデルへ入力する前に、「TextVectorization」層を適用します。
  • モデルが生の文字列を直接処理できるようにしたい場合は、「TextVectorization」層をモデルの内部に組み込むことができます。
  • そのために、学習時に使用した重みを引き継いだ新しいモデル(export_model)を作成します。

このようにエクスポート用モデルを構成しておけば、前処理から推論までをひとつのモデルとして扱えるため、デプロイ後も生テキストをそのまま入力できるのが大きなメリットです。

  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)」は、データを扱うための基本的なデータ構造です。テンソルは多次元配列(またはリスト)であり、データフローグラフと呼ばれる計算グラフのノード同士をエッジでつ