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

TensorFlowとPythonでIMDBデータセットのエポックごとの精度と損失を可視化するグラフを作成する方法


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

「IMDB」データセットには、5万件を超える映画レビューが収録されています。このデータセットは、主に自然言語処理(NLP)に関連するタスクで使用されることが一般的です。

以下のコードはGoogle Colaboratory上で実行しています。Google Colab(Colaboratory)を利用すると、ブラウザ上でPythonコードを実行でき、事前の環境構築が一切不要なうえ、GPU(Graphics Processing Unit)にも無料でアクセスできます。ColaboratoryはJupyter Notebookをベースに構築されています。

コード例

history_dict = history.history
history_dict.keys()
acc = history_dict['binary_accuracy']
val_acc = history_dict['val_binary_accuracy']
loss = history_dict['loss']
val_loss = history_dict['val_loss']

epochs = range(1, len(acc) + 1)

plt.plot(epochs, loss, 'ro', label='Training loss')
plt.plot(epochs, val_loss, 'b', label='Validation loss')
plt.title('Training and validation loss with respect to time')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()

plt.show()

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

出力結果

TensorFlowとPythonでIMDBデータセットのエポックごとの精度と損失を可視化するグラフを作成する方法

コードの解説

  • モデルへのデータの適合(fit)が完了したら、実際の値と予測値を比較し、モデルの性能を評価する必要があります。

  • この比較を行う最も効果的な方法が「可視化」です。

  • そこで、「matplotlib」ライブラリを使用して、訓練時および検証時に発生した損失を時間の経過(エポック数)に対してプロットします。

  • 横軸は、モデルを訓練するために要したステップ数(エポック数)に基づいています。これにより、過学習の有無や学習の進み具合を直感的に把握できます。

  1. TensorFlowとPythonでIMDBデータセットの学習精度・検証精度をグラフ化する方法

    TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、各種アルゴリズムやディープラーニングアプリケーションの実装が可能になります。研究用途から本番環境まで幅広く活用されています。TensorFlowのインストールWindows環境では、以下のコマンドを実行するだけで「tensorflow」パッケージをインストールできます。pip install tensorflowIMDBデータセットについて「IMDB」データセットには、5万件を超える映画レビューが収録されています。このデータセットは、自然言語処理

  2. 【入門】PythonとTensorFlowでテンソルを作成し、メッセージを表示する方法

    TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用できます。研究目的から本番環境での運用まで対応しており、複雑な数値計算を高速に実行するための最適化技術も備えています。TensorFlowの特徴TensorFlowはNumPyおよび多次元配列を基盤としています。この多次元配列は「テンソル(tensor)」とも呼ばれます。主な特徴は以下の通りです。ディープニューラルネットワークの構築・学習をサポート高いスケーラビリテ