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

TensorFlowでPython製モデルをエクスポートする方法|TextVectorizationレイヤーの実装例

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

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

pip install tensorflow

テンソル(Tensor)はTensorFlowにおける基本的なデータ構造です。データフローグラフと呼ばれる計算グラフにおいて、ノード同士をつなぐエッジ(辺)の役割を担います。テンソルとは、端的に言えば多次元配列またはリストのことです。

ここでは「イリアス」のデータセットを使用します。このデータセットには、ウィリアム・カウパー、ダービー伯爵エドワード、サミュエル・バトラーによる3つの翻訳作品のテキストデータが含まれています。モデルは、1行のテキストが与えられた際に、それがどの翻訳者によるものかを識別できるよう訓練されます。使用するテキストファイルは事前に前処理されており、文書のヘッダー・フッター、行番号、章タイトルなどは削除済みです。

以下のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)を利用すれば、ブラウザ上でPythonコードを実行でき、環境構築は一切不要です。さらに、GPU(グラフィックス処理装置)にも無料でアクセスできます。ColaboratoryはJupyter Notebookをベースに構築されています。

コード例

以下がコードスニペットです。

print("カスタム前処理ステップ")
preprocess_layer = TextVectorization(
    max_tokens=vocab_size,
    standardize=tf_text.case_fold_utf8,
    split=tokenizer.tokenize,
    output_mode='int',
    output_sequence_length=MAX_SEQUENCE_LENGTH)
preprocess_layer.set_vocabulary(vocab)
print("モデルをエクスポートしています")
    export_model = tf.keras.Sequential(
    [preprocess_layer, model,
    layers.Activation('sigmoid')])

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

出力結果

カスタム前処理ステップ
モデルをエクスポートしています

解説

  • モデルに生の文字列をそのまま入力させたい場合は、前処理と同じ役割を果たす「TextVectorization」レイヤーを作成する必要があります。これにより、前処理ステップをモデル自体に組み込むことができます。

  • 語彙(ボキャブラリー)はすでに訓練済みであるため、「set_vocabulary」メソッドを使って既存の語彙を新しい前処理レイヤーに設定できます。これにより、重複した訓練を避けつつ、一貫性のある前処理を実現できます。

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