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

TensorFlowとPythonでIlliadデータセットから生の文字列によるテストデータセットを作成・評価する方法


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

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

pip install tensorflow

テンソル(Tensor)はTensorFlowにおける基本的なデータ構造であり、「データフローグラフ」と呼ばれる流れ図の中でエッジ(辺)同士をつなぐ役割を担います。テンソルの実体は、多次元配列またはリストです。

Illiadデータセットについて

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

以下のコードは、Google Colaboratory上で実行しています。Google Colab(Colaboratory)を利用すると、ブラウザ上で直接Pythonコードを実行でき、面倒な環境構築が不要なうえ、GPU(グラフィックス処理装置)にも無料でアクセスできます。ColaboratoryはJupyter Notebookを基盤として構築されています。

コード例

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

print("Creating a test dataset that consists of raw strings")
test_ds = all_labeled_data.take(VALIDATION_SIZE).batch(BATCH_SIZE)
test_ds = configure_dataset(test_ds)
loss, accuracy = export_model.evaluate(test_ds)
print("The loss is : ", loss)
print("The accuracy is: {:2.2%}".format(accuracy))

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

実行結果

Creating a test dataset that consists of raw strings
79/79 [==============================] - 7s 10ms/step - loss: 0.5230 - accuracy: 0.7909
The loss is : 0.5458346605300903
The accuracy is: 78.16%

コードの解説

  • 生の文字列で構成されるテストデータセットを作成し、データを指定したバッチサイズごとにグループ化します。

  • このデータセットを「evaluate」メソッドを使って評価します。

  • 評価の結果得られた損失(loss)と精度(accuracy)がコンソールに出力されます。

  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