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

TensorflowとPythonを使用して過剰適合を減らすために、拡張をどのように使用できますか?


拡張を使用して、トレーニングデータを追加することにより、過剰適合を減らすことができます。これは、「RandomFlip」レイヤーを使用するシーケンシャルモデルを作成することによって行われます。

続きを読む: TensorFlowとは何ですか?KerasはTensorFlowとどのように連携してニューラルネットワークを作成しますか?

Keras Sequential APIを使用します。これは、すべてのレイヤーに1つの入力テンソルと1つの出力テンソルがあるプレーンスタックのレイヤーを操作するために使用されるシーケンシャルモデルの構築に役立ちます。

少なくとも1つの層を含むニューラルネットワークは、畳み込み層と呼ばれます。畳み込みニューラルネットワークを使用して、学習モデルを構築できます。

画像分類子はkeras.Sequentialモデルを使用して作成され、データはpreprocessing.image_dataset_from_directoryを使用して読み込まれます。データはディスクから効率的にロードされます。過剰適合が特定され、それを軽減するための手法が適用されます。これらの手法には、データ拡張とドロップアウトが含まれます。 3700本の花の画像があります。このデータセットには5つのサブディレクトリが含まれ、クラスごとに1つのサブディレクトリがあります。それらは:

デイジー、タンポポ、バラ、ヒマワリ、チューリップ。

Google Colaboratoryを使用して、以下のコードを実行しています。 Google ColabまたはColaboratoryは、ブラウザー上でPythonコードを実行するのに役立ち、構成が不要で、GPU(グラフィックプロセッシングユニット)に無料でアクセスできます。 ColaboratoryはJupyterNotebookの上に構築されています。

トレーニング例の数が少ない場合、モデルはトレーニング例からのノイズまたは不要な詳細から学習します。これは、新しい例でのモデルのパフォーマンスに悪影響を及ぼします。

過剰適合のため、モデルは新しいデータセットでうまく一般化できなくなります。過剰適合を回避する方法はたくさんあります。過剰適合を克服するためにデータ拡張を使用します。データ拡張は、既存の例から、信頼できる外観の画像を生成するランダムな変換を使用してそれらを拡張することにより、追加のトレーニングデータを生成します。

これは、モデルをデータのより多くの側面に公開するのに役立ち、それによってモデルをより一般化するのに役立ちます。次に例を示します。

print("Using data augmentation to eliminate overfitting")
data_augmentation = keras.Sequential(
   [
      layers.experimental.preprocessing.RandomFlip("horizontal",input_shape=(img_height,
      img_width,3)),
      layers.experimental.preprocessing.RandomRotation(0.1),
      layers.experimental.preprocessing.RandomZoom(0.1),
   ]
)

コードクレジット-https://www.tensorflow.org/tutorials/images/classification

出力

Using data augmentation to eliminate overfitting

説明

  • データ拡張は、tf.keras.layers.experimental.preprocessingのレイヤーを使用して実装できます。

  • これらのレイヤーは他のレイヤーと同様にモデル内に含まれ、GPU上で実行されます。

  • これは、過剰適合を排除または削減するために行われます。


  1. TensorFlowを使用してPythonを使用して線形モデルをトレーニングするにはどうすればよいですか?

    Tensorflowは、Googleが提供する機械学習フレームワークです。これは、Pythonと組み合わせて使用​​されるオープンソースのフレームワークであり、アルゴリズム、深層学習アプリケーションなどを実装します。研究や生産目的で使用されます。 「tensorflow」パッケージは、以下のコード行を使用してWindowsにインストールできます- pip install tensorflow Tensorは、TensorFlowで使用されるデータ構造です。フロー図のエッジを接続するのに役立ちます。このフロー図は「データフローグラフ」と呼ばれます。テンソルは、多次元配列またはリストに他なりま

  2. Pythonを使用してモデルをプロットするためにKerasをどのように使用できますか?

    Tensorflowは、Googleが提供する機械学習フレームワークです。これは、Pythonと組み合わせて使用​​されるオープンソースのフレームワークであり、アルゴリズム、深層学習アプリケーションなどを実装します。それは研究および生産目的で使用されます。複雑な数学演算をすばやく実行するのに役立つ最適化手法があります。 Tensorは、TensorFlowで使用されるデータ構造です。フロー図のエッジを接続するのに役立ちます。このフロー図は「データフローグラフ」と呼ばれます。テンソルは多次元配列またはリストに他なりません。 Kerasは、プロジェクトONEIROS(オープンエンドの神経電子イン