首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VGG16传输学习可变输出

VGG16传输学习可变输出
EN

Stack Overflow用户
提问于 2018-06-29 07:40:29
回答 1查看 304关注 0票数 3

使用VGG16进行迁移学习时观察到奇怪的行为。

代码语言:javascript
复制
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类。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-29 08:58:42

那是因为你没有播种。尝尝这个

代码语言:javascript
复制
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)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51096667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档