K.function用法

# load the model
print("[INFO] loading network...")
model = load_model("fashion.model")

# load the image
image_path = "10026.jpg"
image = cv2.imread(image_path)
# pre-process the image for classification
image = cv2.resize(image, (96, 96))
image = image.astype("float") / 255.0
image = img_to_array(image)
image = np.expand_dims(image, axis=0)
print(image, type(image))
# extract the layer feature
get_3rd_layer_output = K.function([model.layers[0].input],[model.layers[3].output])
feature = get_3rd_layer_output(image)[0]
# prob = model.predict(image)[0]

报错:TypeError: inputs to a TensorFlow backend function should be a list or tuple

原因在于,在使用get_3rd_layer时没有用[ ]将image框起来,变成一个list。

将该句

 feature = get_3rd_layer_output(image)[0]

修改为:

 feature = get_3rd_layer_output([image])[0]

K.function作用:

1.一种简单的方法是创建一个新的Model,使得它的输出是你想要的那个输出

 from keras.models import Model
  
 model = ...  # create the original model
  
 layer_name = 'my_layer'
 intermediate_layer_model = Model(input=model.input,
                                  output=model.get_layer(layer_name).output)
 intermediate_output = intermediate_layer_model.predict(data)

2.此外,我们也可以建立一个Keras的函数来达到这一目的:

from keras import backend as K

# with a Sequential model
get_3rd_layer_output = K.function([model.layers[0].input], [model.layers[3].output])
layer_output = get_3rd_layer_output([X])[0]
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值