Keras model.layers[i].get_weights()返回空列表

Keras model.layers[i].get_weights()返回空列表,keras,keras-layer,Keras,Keras Layer,您好,我有下面的代码,我正在将预先保存的自定义权重从.cpkt文件加载到resnet模型中 ''' ''' 如何从保存的.cpkt文件中获取逐层权重和偏差 非常感谢 第一次修正: 您没有正确使用多重赋值,更正如下: all_weights = [], all_biases = [] # wrong all_weights, all_biases = [], [] # correct way to use multi-assignment in python 第二次更正: 并非所有层都有权重,例

您好,我有下面的代码,我正在将预先保存的自定义权重从.cpkt文件加载到resnet模型中

'''

'''

如何从保存的.cpkt文件中获取逐层权重和偏差

非常感谢

第一次修正:

您没有正确使用多重赋值,更正如下:

all_weights = [], all_biases = [] # wrong
all_weights, all_biases = [], [] # correct way to use multi-assignment in python
第二次更正:

并非所有层都有权重,例如:输入、退出等。因此,当您尝试获取这些层的节点权重和偏移权重时,您将出现错误,指示要解压缩的值很少,下面的代码应该可以完成这项工作

for layer in model.layers:
  try:      
    w,b = layer.get_weights()
    all_weights.append(w)
    all_biases.append(b)
  except:
    pass # not all layers have weights !
如果您只想获得预训练模型(res net)的权重,那么在运行上述代码之前,请按如下方式定义模型变量:

model = keras.applications.ResNet50(input_tensor=input_tensor,weights = 'imagenet', include_top = False)

哪一层不返回权重?你应该考虑不是所有的层都有权,没有一层。它们都返回空列表。
model = keras.applications.ResNet50(input_tensor=input_tensor,weights = 'imagenet', include_top = False)