Keras get_weights()不会返回所有权重

时间:2019-04-29 12:27:03

标签: python keras deep-learning

我有以下NN:

cc = Input(shape=(3,))

dd = Dense(1,activation='tanh')(cc)

dense_model3 = Model(inputs=cc, outputs=dd)

# Compile 
dense_model3.compile(optimizer='adam', loss='mean_squared_error')

dense_model3.fit(copstage3,y_stage9, batch_size=150, epochs=100)

ypredi3 = dense_model3.predict(copstage3,batch_size=150, steps = None)

当我使用dense_model3.get_weights()时,我得到:

     ([array([[0.15411839],
     [1.072346  ],
     [0.37893268]], dtype=float32), array([-0.13432428], dtype=float32)]

但是,由于我的数据中有150行,所以我希望每行代表150种不同的权重。我想念什么?

1 个答案:

答案 0 :(得分:0)

您的模型输入的大小为3,

cc = Input(shape=(3,))

并输出大小为1的

dd = Dense(1,activation='tanh')(cc)

没有中间层。因此权重与给定的三个输入和一个输出关联。

([array([[0.15411839],
 [1.072346  ],
 [0.37893268]], dtype=float32), array([-0.13432428], dtype=float32)]

哪里

[array([[0.15411839], [1.072346 ], [0.37893268]], dtype=float32)

表示大小为3的输入层的权重

array([-0.13432428], dtype=float32)

代表大小为1的输出层的权重。

150行数据用于训练该层,并且在训练之后,权重与每个单独的神经元或节点相关联。

希望这会有所帮助。