本文共 1316 字,大约阅读时间需要 4 分钟。
# load the modelprint("[INFO] loading network...")model = load_model("fashion.model")# load the imageimage_path = "10026.jpg"image = cv2.imread(image_path)# pre-process the image for classificationimage = cv2.resize(image, (96, 96))image = image.astype("float") / 255.0image = img_to_array(image)image = np.expand_dims(image, axis=0)print(image, type(image))# extract the layer featureget_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]
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 modelget_3rd_layer_output = K.function([model.layers[0].input], [model.layers[3].output])layer_output = get_3rd_layer_output([X])[0]
转载地址:http://adzfi.baihongyu.com/