也可能是,您正试图从没有任何权重的层中获取权重。假设您定义了以下模型:
input = Input(shape=(4,))
hidden_layer_0 = Dense(4, activation='tanh')(input)
hidden_layer_1 = Dense(4, activation='tanh')(hidden_layer_0)
output = Lambda(lambda t: l2_normalize(100000*t, axis=1))(hidden_layer_1)
model = Model(input, output)
并且想要打印每一层的权重(在之前构建/训练之后)。你可以这样做:
for layer in model.layers:
print("===== LAYER: ", layer.name, " =====")
if layer.get_weights() != []:
weights = layer.get_weights()[0]
biases = layer.get_weights()[1]
print("weights:")
print(weights)
print("biases:")
print(biases)
else:
print("weights: ", [])
如果你运行这段代码,你会得到这样的结果:
===== LAYER: input_1 =====
weights: []
===== LAYER: dense =====
weights:
[[-6.86365739e-02 2.24897027e-01 ... 1.90570995e-01]]
biases:
[-0.02512692 -0.00486927 ... 0.04254978]
===== LAYER: dense_1 =====
weights:
[[-6.86365739e-02 2.24897027e-01 ... 1.90570995e-01]]
biases:
[-0.02512692 0.00933884 ... 0.04254978]
===== LAYER: lambda =====
weights: []
如您所见,第一个(输入)和最后一个(Lambda)层没有任何权重。