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

KerasのSequentialモデルで特徴抽出を行う方法をPythonで解説

TensorFlowはGoogleが提供する機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせてアルゴリズムやディープラーニングアプリケーションなどを実装するために広く使われています。研究用途から本番環境まで幅広く活用されており、複雑な数学的演算を高速に実行するための最適化技術も備えています。

「TensorFlow」パッケージは、Windows環境では以下のコマンドでインストールできます。

pip install tensorflow

テンソル(Tensor)とはTensorFlowで使用されるデータ構造であり、データフローグラフと呼ばれる流れ図のエッジ(辺)をつなぐ役割を担います。テンソルは多次元配列あるいはリストそのものであり、次の3つの主要な属性によって特徴づけられます。

  • ランク(Rank) − テンソルの次元数を表します。テンソルの階数、すなわち定義されたテンソルが持つ次元の数と考えることができます。

  • 型(Type) − テンソルの要素に関連付けられたデータ型を表します。1次元、2次元、n次元のいずれのテンソルにも対応します。

  • 形状(Shape) − 行数と列数の組み合わせを表します。

Kerasは、ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System:開放型神経電子知能ロボットオペレーティングシステム)というプロジェクトの研究の一環として開発されました。KerasはPythonで記述されたディープラーニングAPIであり、機械学習の問題を効率的に解決するための生産性の高いインターフェースを備えた高水準APIです。TensorFlowフレームワークの上で動作し、素早く実験を行えるように設計されています。機械学習ソリューションの開発とカプセル化に不可欠な抽象化機能とビルディングブロックを提供します。

Kerasは高いスケーラビリティを持ち、クロスプラットフォームに対応している点も大きな特長です。つまり、TPUやGPUクラスタ上でも実行可能です。さらに、KerasモデルはWebブラウザやモバイルデバイス上で動作するようエクスポートすることもできます。

KerasはTensorFlowパッケージにあらかじめ含まれており、以下のコードでアクセスできます。

import tensorflow
from tensorflow import keras

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

サンプルコード

print("Sequential model created")
initial_model = keras.Sequential(
    [
        keras.Input(shape=(250, 250, 3)),
        layers.Conv2D(32, 5, strides=2, activation="relu"),
        layers.Conv2D(32, 3, activation="relu"),
        layers.Conv2D(32, 3, activation="relu"),
    ]
)
print("Feature extraction from the model")
feature_extractor = keras.Model(
    inputs=initial_model.inputs,
    outputs=[layer.output for layer in initial_model.layers],
)
print("The feature extractor method is called on test data")
x = tf.ones((1, 250, 250, 3))
features = feature_extractor(x)

コード出典:https://www.tensorflow.org/guide/keras/sequential_model

出力結果

Sequential modal created 
Feature extraction form the model
The feature extractor method is called on test data

解説

  • モデルのアーキテクチャが完成したら、学習(トレーニング)を行います。

  • 学習が完了したら、モデルを評価します。

  • このモデルはディスクに保存することができます。

  • 必要なときに保存済みモデルを復元(ロード)して再利用できます。

  • 複数のGPUを活用して、モデルの学習を高速化することも可能です。

  • モデルを一度構築すると、Functional APIのモデルと同じように振る舞います。

  • これは、すべての層がそれぞれ入力と出力を持つことを意味します。

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