天天看點

keras獲得某一層或者某層權重的輸出

一個例子:

print("Loading vgg19 weights...")

        vgg_model = VGG19(include_top=False, weights='imagenet')

        from_vgg = dict()   # 因為模型定義中的layer的名字與原始vgg名字不同,是以需要調整
        from_vgg['conv1_1'] = 'block1_conv1'
        from_vgg['conv1_2'] = 'block1_conv2'
        from_vgg['conv2_1'] = 'block2_conv1'
        from_vgg['conv2_2'] = 'block2_conv2'
        from_vgg['conv3_1'] = 'block3_conv1'
        from_vgg['conv3_2'] = 'block3_conv2'
        from_vgg['conv3_3'] = 'block3_conv3'
        from_vgg['conv3_4'] = 'block3_conv4'
        from_vgg['conv4_1'] = 'block4_conv1'
        from_vgg['conv4_2'] = 'block4_conv2'

        for layer in model.layers:
            if layer.name in from_vgg:
                vgg_layer_name = from_vgg[layer.name]
                layer.set_weights(vgg_model.get_layer(vgg_layer_name).get_weights())
                print("Loaded VGG19 layer: " + vgg_layer_name)
           
densenet.load_weights('model/densenet_weight/densenet_bottom.h5')
# densenet.save_weights('densenet_bottom.h5')

# print(densenet.weights)# 獲得模型所有權值
t=densenet.get_layer('densenet_conv1/bn')
print(t)
print(densenet.get_weights()[2])
           

繼續閱讀