使用VGG16进行迁移学习时观察到奇怪的行为。
model = VGG16(weights='imagenet',include_top=True)
model.layers.pop()
model.layers.pop()
for layer in model.layers:
layer.trainable=False
new_layer = Dense(2,activation='softmax')
inp = model.input
out = new_layer(model.layers[-1].output)
model = Model(inp,out)然而,当使用model.predict(image)时,输出在分类方面是不同的,即有时它将图像分类为第1类,而下一次将相同的图像分类为第2类。
发布于 2018-06-29 08:58:42
那是因为你没有播种。尝尝这个
import numpy as np
seed_value = 0
np.random.seed(seed_value)
model = VGG16(weights='imagenet',include_top=True)
model.layers.pop()
model.layers.pop()
for layer in model.layers:
layer.trainable=False
new_layer = Dense(2, activation='softmax',
kernel_initializer=keras.initializers.glorot_normal(seed=seed_value),
bias_initializer=keras.initializers.Zeros())
inp = model.input
out = new_layer(model.layers[-1].output)
model = Model(inp,out)https://stackoverflow.com/questions/51096667
复制相似问题