Python 为什么我在简单的2输出2输入网络中得到6个Keras参数?
我正在学习keras中的神经网络。我在虚构的数据上指定了一个简单的模型Python 为什么我在简单的2输出2输入网络中得到6个Keras参数?,python,tensorflow,keras,neural-network,Python,Tensorflow,Keras,Neural Network,我正在学习keras中的神经网络。我在虚构的数据上指定了一个简单的模型 model=tf.keras.models.Sequential() model.add(tf.keras.layers.Dense(2, input_dim=2)) model.compile(optimizer='sgd', loss='mean_squared_error') 我有两个属性来预测两个值 这里是我初始化数据的地方: x=[] y=[] for x1 in range (6): x2=int(ra
model=tf.keras.models.Sequential()
model.add(tf.keras.layers.Dense(2, input_dim=2))
model.compile(optimizer='sgd', loss='mean_squared_error')
我有两个属性来预测两个值
这里是我初始化数据的地方:
x=[]
y=[]
for x1 in range (6):
x2=int(random.random()*10)
x.append([x1,x2])
y.append([2*x1+x2**2-2, x1*x2])
xs = np.array(x, dtype=float)
xs=xs.reshape(6,2)
ys = np.array(y, dtype=float)
ys=ys.reshape(6,2)
model.fit(xs, ys, epochs=500)
请注意,我使用这些数据只是为了学习。在我试图观察模型之后。我运行model.summary()
和model.get\u weights()
我不明白为什么有6个参数和6个砝码。根据我的理解,每个输入应该有两个输出层,或者我应该在某个地方专门定义输出层吗?您定义的模型架构如下图所示 你有一个密集的层,有两个神经元。为什么是两个神经元?因为
density
的第一个参数是units
,它表示神经元的数量。每个神经元进行X.W+b
的线性运算,然后对其应用激活函数。nuerons中的可学习参数是W
和b
由于
X
的大小为2(2个特征),因此W
(=2)+b
=3。因此,在这种情况下,每个神经元将有3个参数,其中2个将有6个参数。您定义的模型架构如下图所示
你有一个密集的层,有两个神经元。为什么是两个神经元?因为density
的第一个参数是units
,它表示神经元的数量。每个神经元进行X.W+b
的线性运算,然后对其应用激活函数。nuerons中的可学习参数是W
和b
由于
X
的大小为2(2个特征),因此W
(=2)+b
=3。因此,在这种情况下,每个神经元将有3个参数,2个这样的神经元将有6个参数。如果有一个带有两个神经元的输出层,每个神经元必须有两个权重(因为输入是维度2)和另一个称为“偏差”的权重。每个神经元有3个权值
总之,您有2个神经元,每个神经元有3个权重或可训练参数,因此您的网络中总共有6个可训练参数。您有一个带有两个神经元的单一输出层,每个神经元必须有两个权重(因为输入为维度2)和另一个称为“偏差”的权重。每个神经元有3个权值
总之,您有2个神经元,每个神经元有3个权重或可训练参数,因此在您的网络中总共有6个可训练参数。这些值不是唯一的吗?这是否回答了您的问题?这些值不正是唯一的吗?这回答了你的问题吗?通过密集层,你是在神经网络中的一个节点?通过密集层,你是在神经网络中的一个节点?
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 2) 6
=================================================================
Total params: 6
Trainable params: 6
Non-trainable params: 0
_________________________________________________________________
None
model weights [array([[0.5137405, 5.477211 ],
[8.750836 , 1.6910588]], dtype=float32), array([-5.701193, -7.874653], dtype=float32)]