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

TensorFlowとIlliadデータセットを使って、Pythonでテストデータに対するモデルの性能を検証する方法

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

TensorFlowは深層ニューラルネットワークの構築をサポートしており、高いスケーラビリティを持ち、多くの人気データセットが同梱されています。GPU計算を活用し、リソース管理を自動化できる点も大きな特徴です。多数の機械学習ライブラリが含まれ、ドキュメントも充実しているため、深層ニューラルネットワークモデルの構築・学習を行い、データセットの特徴を予測するアプリケーションを作成できます。

テンソルはTensorFlowにおける基本的なデータ構造であり、計算グラフ(データフローグラフ)のエッジをつなぐ役割を果たします。テンソルとは、要するに多次元配列またはリストのことです。

本記事では、イリアス(Illiad)のデータセットを使用します。このデータセットには、William Cowper、Edward(Derby伯)、Samuel Butlerによる3つの翻訳作品のテキストデータが含まれています。モデルは、1行のテキストが与えられたときに、それがどの翻訳者によるものかを識別できるように学習されます。使用するテキストファイルは前処理済みであり、文書のヘッダー・フッター、行番号、章タイトルなどが削除されています。

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

コード例

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

print("Testing the model on new data")
inputs = [
    "the allies, and his armour flashed about him so that he seemed to all",
    "And with loud clangor of his arms he fell.",
    "Join'd to th' Ionians with their flowing robes,",
]
print("The predict method is being called")
predicted_scores = export_model.predict(inputs)
predicted_labels = tf.argmax(predicted_scores, axis=1)
for input, label in zip(inputs, predicted_labels):
    print("The question is : ", input)
    print("The predicted label is : ", label.numpy())

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

出力結果

Testing the model on new data
The predict method is being called
The question is : the allies, and his armour flashed about him so that he seemed to all
The predicted label is : 2
The question is : And with loud clangor of his arms he fell.
The predicted label is : 0
The question is : Join'd to th' Ionians with their flowing robes,
The predicted label is : 1

解説

  • データのコンパイルと訓練データへの適合(fit)が完了したら、モデルをまだ見たことのない新しいデータでテストします。

  • テストデータに対して「predict」メソッドを呼び出し、予測を実行します。

  • 予測されたラベルのサンプルが、対応する入力テキストとともに表示されます。

  1. TensorFlowとPythonを使ってデータセットを視覚化する方法

    ここでは、花のデータセットを使用します。このデータセットは、Googleが提供するAPI経由でダウンロードでき、「get_file」メソッドにAPIのURLを引数として渡すことで、データを開発環境に取得できます。 ダウンロードしたデータは「matplotlib」ライブラリを使って視覚化できます。「imshow」メソッドを使用すると、コンソール上に画像を表示することが可能です。 TensorFlowとKerasの連携 関連記事: TensorFlowとは何か?KerasはどのようにTensorFlowと連携してニューラルネットワークを構築するのか? 本記事ではKeras Sequential

  2. TensorFlowとPythonを使って花のデータセットを可視化する方法

    花のデータセットは、matplotlibライブラリを使用することで簡単に可視化できます。imshowメソッドを使うと、画像をコンソール上に表示でき、データセット全体を反復処理しながら最初の数枚の画像だけを出力するといったことも可能です。使用するデータセットについて本記事では、数千枚の花の画像を含む「flowers(花)」データセットを使用します。このデータセットには5つのサブディレクトリが含まれており、各クラス(花の種類)ごとに1つのサブディレクトリが割り当てられています。なお、以下のコードはGoogle Colaboratoryで実行することを想定しています。Google Colab(Col