【问题标题】:Get weights in keras在 keras 中获取权重
【发布时间】:2020-04-01 22:55:57
【问题描述】:

当我尝试使用 get_weights 在 keras 中获取 CNN 层的权重时,它会导致错误并说: “张量”对象没有“权重”属性。 我看到了 keras 文档,它说使用 get_weights 命令来处理权重。 所以我不知道它有什么问题。 我也使用 keras 2.2.4

这是我的代码的一部分:

input_layer = Input(shape=(32,32,3))
conv1 = Conv2D(32,(5,5), activation='relu', padding='same')(input_layer)
conv2 = Conv2D(32,(5,5), activation='relu', padding='same')(conv1)
maxpool1 = MaxPool2D(pool_size=2, padding='same')(conv2)
conv3 = Conv2D(32,(5,5), activation='relu', padding='same')(maxpool1)
conv4 = Conv2D(32,(5,5), activation='relu', padding='same')(conv3)
maxpool2 = MaxPool2D(pool_size=2, padding='same')(conv4)
conv5 = Conv2D(32,(5,5), activation='relu', padding='same')(maxpool2)
flatten1 = Flatten()(conv5)
dense1 = Dense(128, kernel_initializer='random_normal', bias_initializer='zeros')(flatten1)
dense2 = Dense(128,kernel_initializer='random_normal', bias_initializer='zeros')(dense1)
output_layer = Dense(10,activation='softmax',kernel_initializer='random_normal', bias_initializer='zeros')(dense2)
Cifar10_CNN = Model(input_layer, output_layer)

print(Cifar10_CNN.summary())

Cifar10_CNN.compile(optimizer=Adam(lr=0.0001), loss=categorical_crossentropy, metrics=['accuracy'])

conv1_weight_visualization = conv1.get_weights()
plt.imshow(conv1_weight_visualization)

【问题讨论】:

  • 如果您不提供实际代码,我们也无法知道出了什么问题,您很可能在错误的对象中调用 get_weights。

标签: python-3.x tensorflow keras conv-neural-network


【解决方案1】:
for layer in Cifar10_CNN.layers: 
   print(layer.name, np.array(layer.get_weights()))

你可以像这样获取每一层的权重。

【讨论】:

    猜你喜欢
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 2022-08-24
    • 2017-03-22
    • 1970-01-01
    • 2017-09-04
    • 2018-05-18
    • 1970-01-01
    相关资源
    最近更新 更多