コードサンプルを使用したKerasレイヤーの入力に関する説明
Kerasレイヤーの引数に関連する一般的な質問(input shape, weight, units, dimなど)に対する簡単な回答をお届けします。 それでは、例を挙げて紹介します。
Created on April 20|Last edited on April 20
Comment
質問:input_shape, units, dimなどの違いを理解していますか?
Kerasレイヤー(レイヤークラス)の場合、|input_shape|, |units|, |dim|などの違いを理解する方法を説明できる方はいますか?
たとえば、ドキュメントには、|units|がKerasレイヤーのoutput shapeを指定すると書かれています。
下のニューラルネットの画像では、|hidden layer1|には4つのユニットがあります。 これは |Layer| オブジェクトの |units| 属性に直接変換されますか? または、Kerasの|units|は、hidden layerのすべてのウエイトのshapeにunits数を掛けた値に等しいのでしょうか?
下の画像を使用して、モデルの属性、特にレイヤーをどのように理解/視覚化するのでしょうか?

回答
Keras レイヤーのunits
Kerasレイヤーでは、unitsはニューラルネットワークアーキテクチャの各レイヤー内のニューロン数です。たとえば、次のようになります:
some_layer = tf.keras.layers.Dense(10, activation=None)
Units数は 10です。 したがって、10個のニューロンが存在します。
上の画像では、|hidden layer1|には 4 つのunitsがあり、|hidden layer2| には 4 つのunitsがあり、|output| レイヤーには 2 つのunitsがあります。
Kerasレイヤーのshape
Kerasレイヤーのshapeは配列またはテンソルが各次元に持つ要素の数を表すタプルです。
例: shape| (3, 4, 4) |のテンソルは 3 次元で、最初の次元には 3 つの要素があります。これら 3 つの要素にはそれぞれ 4 つの要素があり、これらの 4 つの要素のそれぞれには 4 つの要素があります。 したがって、合計|3*4*4 = 48|要素になります。
KerasレイヤーのInput Shape
Kerasレイヤーのinput shapeは、通常、トレーニング中にKerasモデルに提供される入力データの形状です。 モデルはトレーニングデータの形状を認識できません。他のテンソル(レイヤー)の形状は自動的に計算されます。
各タイプのKerasレイヤーには、特定の数の次元を持つinputが必要です。
- Dense layersには、|(batch_size, input_size) |のような入力が必要です。
- には、次のような入力が必要です:
- channels_lastを使用している場合: |(batch_size, imageside1, imageside2, channels) |
- channels_firstを使用している場合: |(batch_size, channels, imageside1, imageside2) |
- 1D convolutionsとRecurrent layers |(batch_size, sequence_length, features)を使用|
- 他のテンソルの形状は、|Conv2D レイヤー|で|kernel_size|などの他の特殊性と共に提供されるユニットの数に基づいて計算されます。
Kerasレイヤーのウエイト
Kerasレイヤーのウエイトは、学習済みの数学的操作によってinput shapeをoutput shapeに変換できる行列です。
ウエイトは、input shapeとoutput shapeに基づいて完全に自動的に計算されます。 繰り返し述べますが、各タイプのレイヤーは特定の方法で機能します。
KerasレイヤーのDim
一般に、dimとは、テンソルがKerasレイヤーで持つ次元の数を指します。 たとえば、shape |(32, 1024)| のテンソルには 2 つの次元があります。
私たちは通常、|(3,)|のような1つのdimテンソルを定義します。 したがって、この1 次元入力には 3 つの要素があります。
それでは、Kerasの問題セクションで画像を定義するとします。
もう一度先の問題セクションの画像を見て、Kerasで画像を定義しましょう。

Sequential APIの使用
from keras.models import Sequentialfrom keras.layers import *model = Sequential()model.add(Input(shape=(3,))) # Input tensormodel.add(Dense(units=4)) # hidden layer 1model.add(Dense(units=4)) #hidden layer 2model.add(Dense(units=1)) #output layer
Functional API の使用
from keras.models import Modelfrom keras.layers import *inputs = Input(shape=(3,)) # input tensorhidden1 = Dense(units=4)(inputs) # hidden layer 1hidden2 = Dense(units=4)(hidden1) # hidden layer 2outputs = Dense(units=1)(hidden2) # hidden layer 1#define the model's start and end pointsmodel = Model(inputs, outputs)
各レイヤーのモデルの要約とoutputシェイプを見てみましょう

図1:モデルの要約
Add a comment
Iterate on AI agents and models faster. Try Weights & Biases today.