【问题标题】:Check if a layer has weights for a keras CNN检查层是否具有 keras CNN 的权重
【发布时间】:2019-05-22 18:03:54
【问题描述】:

我有一个用 keras 制作的 CNN。

我可以使用以下方法查看特定层的权重:

weights,biases = model.layers[n].get_weights()
print(weights,biases)

但我想查看所有相关层的权重,所以我尝试了:

for layer in model.layers:
    weights,biases = layer.get_weights()

但是对于没有权重的层(例如max pool 层),这会引发错误。

那么是否可以检查一个层是否具有权重,例如:

if layer.weights != None:

编辑:添加了我正在使用的 keras 模型

model = keras.models.Sequential()
model.add(keras.layers.Conv2D(1, kernel_size=(3,3),activation='relu', input_shape=(6,6,1)))
model.add(keras.layers.MaxPool2D(pool_size=(2,2)))
model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(len(sign_label_list),activation='relu'))

【问题讨论】:

  • 你能提供你的模型的代码吗?

标签: python keras


【解决方案1】:

你冷试试这个:

for layer in model.layers: 
    if len(layer.get_weights()) > 0: 
        print(layer.name, layer.get_weights()) 

【讨论】:

  • 谢谢。建议的方式有效,但在使用layer.get_weights() 打印时,它还会显示一些额外的内容。我使用print(layer.get_weights()[0]) 只显示权重。
猜你喜欢
  • 2020-06-02
  • 2020-11-05
  • 2021-05-28
  • 1970-01-01
  • 2010-12-08
  • 2016-04-23
  • 2018-11-14
  • 1970-01-01
  • 2017-03-22
相关资源
最近更新 更多