如何从模型中获取权重和偏差?

3 python keras

我有一个简单的神经网络,我需要从模型中获取权重和偏差。我已经尝试了之前讨论的一些方法,但我不断收到越界值错误。不知道如何解决这个问题,或者我错过了什么。

网络-

model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation=tf.nn.relu),
    keras.layers.Dense(10, activation=tf.nn.softmax)
])
Run Code Online (Sandbox Code Playgroud)

model.layers[0].get_weights()[1]

错误 - IndexError: list index out of range

这是在几个问题中提到的,但我最终得到了越界错误。

我还有一个问题,后面跟着的索引model.layers[],和图层对应吗?例如model.layers[1]给出第二层对应的权重,类似的东西?

abe*_*mez 7

我去过那里,我一直在查看我的旧代码,看看我是否记得我是如何解决这个问题的。我所做的就是打印 的长度,model.layer[index].get_weights()[X]以找出 keras 在哪里保存了我需要的权重。在我的旧代码中,model.layers[0].get_weights()[1]将返回偏差,而model.layers[0].get_weights()[0]将返回实际权重。在任何情况下,请考虑到有些图层的权重未保存(因为它们没有权重),因此如果请求不起作用model.layers[0].get_weights()[0],请尝试使用model.layers[1].get_weights()[1],因为我不确定是否会展平图层,但是我确实知道密集层应该节省它们的重量。