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

Pythonで構築したシーケンシャルモデルをKerasでコンパイルする方法


Kerasとは、ギリシャ語で「角(ホーン)」を意味する言葉です。Kerasは、ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System)というプロジェクトの研究の一環として開発されました。Pythonで書かれた深層学習向けのAPIであり、機械学習の問題を効率的に解決するための生産性の高いインターフェースを備えた高レベルAPIです。

KerasはTensorFlowフレームワークの上で動作します。迅速な実験を支援する目的で設計されており、機械学習ソリューションの開発やカプセル化に不可欠な抽象化機能とビルディングブロックを提供しています。

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

KerasはすでにTensorFlowパッケージに含まれており、以下のコードで簡単に利用できます。

import tensorflow
from tensorflow import keras

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

Functional APIとシーケンシャルAPIの違い

KerasのFunctional API(関数型API)を使用すると、シーケンシャルAPIで作成したモデルよりも柔軟なモデルを構築できます。Functional APIは非線形トポロジーを持つモデルに対応でき、レイヤーの共有や複数の入出力を扱うことも可能です。深層学習モデルは通常、複数のレイヤーを含む有向非巡回グラフ(DAG)として表現され、Functional APIはこのレイヤーグラフの構築を支援します。

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

それでは、構築済みのシーケンシャルモデルをKerasでコンパイルするコードを見ていきましょう。

サンプルコード

print("Model is being compiled")
model.compile(
    optimizer=keras.optimizers.RMSprop(1e-3),
    loss=[
        keras.losses.BinaryCrossentropy(from_logits=True),
        keras.losses.CategoricalCrossentropy(from_logits=True),
    ],
    loss_weights=[1.0, 0.2],
)

コード引用元:https://www.tensorflow.org/guide/keras/functional

出力結果

Model is being compiled

コードの解説

  • 構築済みのモデルは、「compile」メソッドを使ってコンパイルできます。

  • コンパイル時には、出力ごとに異なる損失関数を割り当てることが可能です。上記の例では、BinaryCrossentropyとCategoricalCrossentropyという2種類の損失関数を指定しています。

  • さらに、損失ごとに異なる重み(loss_weights)を設定することもできます。これにより、トレーニング全体の損失値への影響度を調整できます。例では最初の損失に1.0、2番目の損失に0.2の重みが与えられています。

  • 最適化アルゴリズムにはRMSpropが使用され、学習率として1e-3(0.001)が指定されています。

  1. Kerasのplot_model関数を使ってモデル構造を可視化する方法【Python】

    Kerasはギリシャ語で「角(ホーン)」を意味します。ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System)というプロジェクトの研究の一環として開発された、Pythonで書かれたディープラーニングAPIです。機械学習の問題解決を効率的に行うための、生産性の高いインターフェースを備えた高水準APIとなっています。 KerasはTensorFlowフレームワークの上で動作し、素早く実験を行えるよう設計されています。機械学習ソリューションの開発とカプセル化に不可欠な抽象化機能やビルディングブロックを提供してくれる

  2. Kerasを使ってPythonでモデルをプロットする方法をわかりやすく解説

    TensorFlowとはTensorFlowは、Googleが提供している機械学習フレームワークです。オープンソースとして公開されており、Pythonと組み合わせて使用することで、アルゴリズムの実装やディープラーニングアプリケーションの開発など、幅広い用途に活用できます。研究目的から本番環境での運用まで対応しており、複雑な数値計算を高速に実行するための最適化技術が数多く組み込まれています。TensorFlowにおける「テンソル(Tensor)」は、データを扱うための基本的なデータ構造です。テンソルは多次元配列(またはリスト)であり、データフローグラフと呼ばれる計算グラフのノード同士をエッジでつ