我有一个简单的神经网络,我需要从模型中获取权重和偏差。我已经尝试了之前讨论的一些方法,但我不断收到越界值错误。不知道如何解决这个问题,或者我错过了什么。
网络-
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]给出第二层对应的权重,类似的东西?
我去过那里,我一直在查看我的旧代码,看看我是否记得我是如何解决这个问题的。我所做的就是打印 的长度,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],因为我不确定是否会展平图层,但是我确实知道密集层应该节省它们的重量。
| 归档时间: |
|
| 查看次数: |
7901 次 |
| 最近记录: |