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

TensorFlowを使ってMNISTデータセット用のモデルを定義する方法

TensorFlowは、Googleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、各種アルゴリズムやディープラーニングアプリケーションの実装が可能になります。複雑な数値計算を高速に処理できる最適化技術を備えているのが特徴で、これは内部でNumPyと多次元配列を利用しているためです。この多次元配列は「テンソル(Tensor)」とも呼ばれます。また、深層ニューラルネットワークの構築もサポートしています。

TensorFlowのインストール

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

pip install tensorflow

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

Kerasについて

KerasはPythonで書かれたディープラーニング向けAPIです。機械学習の問題を効率的に解決できる生産性の高いインターフェースを持つ高水準APIで、TensorFlowフレームワークの上で動作します。素早く実験を行えるよう設計されており、TensorFlowパッケージには最初から組み込まれています。以下のコードでアクセスできます。

import tensorflow
from tensorflow import keras

本記事のコードは、Google Colaboratory上で実行することを想定しています。Google Colab(Colaboratory)はブラウザ上でPythonコードを実行できるサービスで、環境設定は一切不要、GPU(グラフィックス処理装置)への無料アクセスも可能です。ColaboratoryはJupyter Notebookをベースに構築されています。

コード例:シーケンシャルモデルの定義

print("Defining a sequential model")
def create_model():
    model = tf.keras.models.Sequential([
        keras.layers.Dense(512, activation='relu', input_shape=(784,)),
        keras.layers.Dropout(0.2),
        keras.layers.Dense(10)
    ])

    model.compile(optimizer='adam',
        loss=tf.losses.SparseCategoricalCrossentropy(from_logits=True),
        metrics=[tf.metrics.SparseCategoricalAccuracy()])

    return model

print("Creating a model instance")
model = create_model()

print("Displaying the architecture of the sequential model")
model.summary()

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

実行結果

このコードを実行すると、モデルのアーキテクチャ概要が出力されます。

コードの解説

  • Kerasを使用してシーケンシャル(Sequential)モデルを作成します。

  • 全結合層である「Dense」レイヤーを複数層構築します。入力形状はMNIST画像を一次元化した784次元、中間層は512ユニットでReLU活性化関数を使用し、過学習を防ぐためにDropout(0.2)を挟みます。

  • 出力層は10クラス分類に対応した10ユニットのDenseレイヤーです。

  • compileメソッドでモデルをコンパイルします。最適化アルゴリズムにはAdam、損失関数にはSparseCategoricalCrossentropy、評価指標にはSparseCategoricalAccuracyを指定しています。

  • create_model関数を呼び出してモデルのインスタンスを生成します。

  • summaryメソッドを使うことで、レイヤー構成やパラメータ数などモデルの詳細情報を画面に表示できます。

  1. TensorFlowとFashion MNISTデータセットを使って、学習済みモデルでPythonによる画像予測を行う方法

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

  2. TensorFlowとPythonでFashion MNISTの予測結果を検証する方法を徹底解説

    TensorFlowとはTensorFlowは、Googleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、機械学習アルゴリズムやディープラーニングアプリケーションの実装が可能になります。研究用途から本番環境まで幅広く活用されています。Windows環境にTensorFlowをインストールするには、以下のコマンドを実行します。pip install tensorflowFashion MNISTデータセットについて「Fashion MNIST」データセットには、さまざまな種類の衣類の画像が含まれています。10の異なるカテゴリに