1. ホーム
  2. keras

[解決済み] tf.keras.lays.Denseは具体的に何をするのですか?

2022-02-01 03:31:56

質問

質問

Kerasを使って、畳み込みニューラルネットワークを構築しています。次のようなことに出くわしました。

model = tf.keras.Sequential()
model.add(layers.Dense(10*10*256, use_bias=False, input_shape=(100,)))

数学的にはどうなっているのでしょうか?

私の推測

私の推測では、サイズ[100,N]の入力に対して、ネットワークは各トレーニング例に対して1回ずつ、N回評価されることになります。で作成されたDense層は layers.Dense には (10*10*256) * (100) バックプロパゲーション中に更新されるパラメータを指定します。

どのように解決するのですか?

Denseは操作を実装しています。 output = activation(dot(input, kernel) + bias) activation は activation 引数として渡される要素ごとの活性化関数、kernel はレイヤーが作成する重み行列、bias はレイヤーが作成するバイアスベクトルです (use_bias が True の場合のみ適用可能)。

<ブロッククオート

注意: もしレイヤーの入力が2より大きいランクを持つなら、それは カーネルとの最初の内積の前に平坦化されます。

# as first layer in a sequential model:
model = Sequential()
model.add(Dense(32, input_shape=(16,)))
# now the model will take as input arrays of shape (*, 16)
# and output arrays of shape (*, 32)

# after the first layer, you don't need to specify
# the size of the input anymore:
model.add(Dense(32))

引数:

> units: Positive integer, dimensionality of the output space.

> activation: Activation function to use. If you don't specify anything,

> no activation is applied (ie. "linear" activation: a(x) = x).

> use_bias: Boolean, whether the layer uses a bias vector.

> kernel_initializer: Initializer for the kernel weights matrix.

> bias_initializer: Initializer for the bias vector. 

>kernel_regularizer:Regularizer function applied to the kernel weights matrix.
> bias_regularizer: Regularizer function applied to the bias vector.

> activity_regularizer: Regularizer function applied to the output of the layer (its "activation").. 

>kernel_constraint: Constraint function applied to the kernel weights matrix. 

>bias_constraint: Constraint function applied to the bias vector.

入力形状です。

形状を持つN-Dテンソル。(batch_size, ..., input_dim) である。最も一般的な状況は、形状 (batch_size, input_dim) を持つ2次元入力であろう。

出力形状。

形状を持つN-Dテンソル。(batch_size, ..., units)を持つN-Dテンソルです。例えば、形状 (batch_size, input_dim) の 2 次元入力に対して、出力は形状 (batch_size, units) となる。