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

Tensorflowを使用してPythonを使用してレイヤーを作成するにはどうすればよいですか?


Tensorflowを使用して、「ResnetIdentityBlock」から継承するクラスを定義することでレイヤーを構成できます。これは、レイヤーの構成に使用できるブロックを定義するために使用されます。

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

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

TensorFlow Hubは、事前にトレーニングされたTensorFlowモデルを含むリポジトリです。 TensorFlowを使用して、学習モデルを微調整できます。 TensorFlow Hubのモデルをtf.kerasで使用する方法を理解し、TensorFlowHubの画像分類モデルを使用します。これが完了すると、転送学習を実行して、カスタマイズされた画像クラスのモデルを微調整できます。これは、事前にトレーニングされた分類モデルを使用して画像を取得し、それが何であるかを予測することによって行われます。これは、トレーニングを必要とせずに実行できます。

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

print("Composing layers")
class ResnetIdentityBlock(tf.keras.Model):
   def __init__(self, kernel_size, filters):
      super(ResnetIdentityBlock, self).__init__(name='')
      filters1, filters2, filters3 = filters
      self.conv2a = tf.keras.layers.Conv2D(filters1, (1, 1))
      self.bn2a = tf.keras.layers.BatchNormalization()
      self.conv2b = tf.keras.layers.Conv2D(filters2, kernel_size, padding='same')
      self.bn2b = tf.keras.layers.BatchNormalization()
      self.conv2c = tf.keras.layers.Conv2D(filters3, (1, 1))
      self.bn2c = tf.keras.layers.BatchNormalization()
   def call(self, input_tensor, training=False):
      x = self.conv2a(input_tensor)
      x = self.bn2a(x, training=training)
      x = tf.nn.relu(x)
      x = self.conv2b(x)
      x = self.bn2b(x, training=training)
      x = tf.nn.relu(x)
      x = self.conv2c(x)
      x = self.bn2c(x, training=training)
      x += input_tensor
      return tf.nn.relu(x)
print("The layer is called")
block = ResnetIdentityBlock(1, [1, 2, 3])
_ = block(tf.zeros([1, 2, 3, 3]))
block.layers
len(block.variables)
block.summary()

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

出力

Composing layers
The layer is called
Model: "resnet_identity_block"
_________________________________________________________________
Layer (type)        Output Shape      Param #
=================================================================
conv2d (Conv2D)       multiple          4
_________________________________________________________________
batch_normalization (BatchNo multiple   4
_________________________________________________________________
conv2d_1 (Conv2D)      multiple        4
_________________________________________________________________
batch_normalization_1 (Batch multiple  8
_________________________________________________________________
conv2d_2 (Conv2D)     multiple         9
_________________________________________________________________
batch_normalization_2 (Batch multiple  12
=================================================================
Total params: 41
Trainable params: 29
Non-trainable params: 12

説明

  • resnetの残りのブロックはすべて、畳み込み、バッチ正規化、およびショートカットで構成されています。

  • レイヤーは他のレイヤー内にネストすることもできます。

  • Model.fit、Model.evaluate、Model.saveなどのモデルメソッドが必要な場合は、keras.Modelから継承できます。

  • 変数の追跡に役立つkeras.layers.Layerの代わりにkeras.Modelが使用されます。

  • keras.Modelはその内部レイヤーを追跡するため、レイヤーの検査が容易になります


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

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

  2. Keras機能APIを使用してPythonを使用してレイヤーを作成する方法について話し合う

    Tensorflowは、Googleが提供する機械学習フレームワークです。これは、Pythonと組み合わせて使用​​されるオープンソースのフレームワークであり、アルゴリズム、深層学習アプリケーションなどを実装します。それは研究および生産目的で使用されます。複雑な数学演算をすばやく実行するのに役立つ最適化手法があります。 「tensorflow」パッケージは、以下のコード行を使用してWindowsにインストールできます- pip install tensorflow ケラスはギリシャ語で「角」を意味します。 Kerasは、プロジェクトONEIROS(オープンエンドの神経電子インテリジェントロ