Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我在简单的2输出2输入网络中得到6个Keras参数?_Python_Tensorflow_Keras_Neural Network - Fatal编程技术网

Python 为什么我在简单的2输出2输入网络中得到6个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

我正在学习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(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)]