首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >微调模型中的Keras精度差异

微调模型中的Keras精度差异
EN

Stack Overflow用户
提问于 2017-07-30 19:56:41
回答 2查看 124关注 0票数 2

背景

在Keras中微调分类模型时,它打印了val_acc: 0.8456。使用This code进行微调。

经过微调、手动加载训练模型并预测估值集后,0.28的精度大大降低。

以下代码用于评估:

代码语言:javascript
复制
model = load_model(MODEL_PATH)
...
img = kimage.load_img(img_path, target_size=target_size)
x = kimage.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = vgg19.preprocess_input(x)
pred = model.predict(x)

问题

造成精确度0.85 != 0.28差异较大的原因可能是什么

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-07-31 10:13:06

您正在使用不同的预处理来进行训练和测试。具体来说,

代码语言:javascript
复制
rescale = 1./255

用于训练,但是

代码语言:javascript
复制
x = vgg19.preprocess_input(x)

用于测试。

imagenet_utils.preprocess_input()所做的是减去平均值(在ImageNet上计算,顾名思义):

代码语言:javascript
复制
    # Zero-center by mean pixel
    x[:, :, :, 0] -= 103.939
    x[:, :, :, 1] -= 116.779
    x[:, :, :, 2] -= 123.68

因此,它与应用于训练数据的预处理有很大的不同。

票数 2
EN

Stack Overflow用户

发布于 2017-07-31 17:51:31

使用相同的ImageDataGenerator

我的ImageDataGenerator是:

代码语言:javascript
复制
train_datagen = ImageDataGenerator(
    rescale=1. / 255, ...)

能够按如下方式重现其预处理过程:

代码语言:javascript
复制
img = load_img(image_path, target_size=target_size)
x = img_to_array(img)
x = np.expand_dims(x, axis=0)
x *= rescale_factor

score = model.predict(x)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45399535

复制
相关文章

相似问题

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