【发布时间】:2019-01-27 16:09:29
【问题描述】:
我在 tensorflow 上使用带有 python 3 和 keras 的 ubuntu,我正在尝试使用来自预训练 keras 模型的迁移学习来创建一个模型,如 here 所述:
我正在使用以下代码
import numpy as np
from keras.applications import vgg16, inception_v3, resnet50, mobilenet
from keras import Model
a = np.random.rand(1, 224, 224, 3) + 0.001
a = mobilenet.preprocess_input(a)
mobilenet_model = mobilenet.MobileNet(weights='imagenet')
mobilenet_model.summary()
inputLayer = mobilenet_model.input
m = Model(input=inputLayer, outputs=mobilenet_model.get_layer("conv_pw_13_relu")(inputLayer))
m.set_weights(mobilenet_model.get_weights()[:len(m.get_weights())])
p = m.predict(a)
print(np.std(p), np.mean(p))
print(p.shape)
我正在使用的层的输出始终是一个零数组,我是否应该将权重加载到我正在创建的 p 以使预训练模型实际工作?
【问题讨论】:
-
试试
m = Model(input=..., outputs=mobilenet_model.get_layer('...').output)) -
成功了!你能发布答案吗?
-
Sreeram TP 将此作为答案发布,请随意接受:)
标签: python tensorflow keras deep-learning transfer-learning