You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

预训练InceptionV3 CNN推理结果随机的问题求助

解决InceptionV3推理结果随机的问题

你这情况我太熟了——之前用预训练CNN做推理时也踩过一模一样的坑!核心问题其实出在模型构建时的一个参数设置上,咱们一步步来解决:

问题根源:训练模式没关掉

你在调用inception_v3的时候,把is_training参数设成了True,这就导致模型里的Dropout和**批量归一化(BatchNorm)**一直处于训练状态:

  • Dropout会随机丢弃部分神经元,每次推理丢的都不一样,结果自然随机;
  • BatchNorm会用当前输入批次的均值/方差计算,而不是预训练好的移动均值/方差,也会带来随机性。

快速修复步骤

1. 把is_training改成False

修改模型构建的代码,把True换成False:

logits, endpoints = nn_architecture.inception_v3(input, # input
                                                 1001, #NUM_CLASSES, #num classes
                                                 False, # 这里改成False!关闭训练模式
                                                 0.8, # dropout keep rate
                                                 16, # min depth
                                                 1.0, # depth multiplayer
                                                 layers_lib.softmax, # prediction function
                                                 True, # spatial squeeze
                                                 tf.AUTO_REUSE, # reuse, use get variable to get variables directly... probably
                                                 'InceptionV3') # scope

当is_training=False时,Dropout会完全关闭(保留所有神经元),BatchNorm会自动切换到推理模式,使用预训练好的统计量,这样每次推理结果就一致了。

2. 可选:检查图片预处理是否标准

另外,你的图片缩放方式可能需要调整——InceptionV3官方要求输入像素值范围是[-1, 1],而skimage.zoom处理后可能是[0,1]的浮点数,这会影响模型输出。你可以调整预处理代码:

from skimage import io, transform
car = io.imread("data/car.jpg")
# 缩放后转成[0,255]的整数,再归一化到[-1,1]
car_scaled = transform.resize(car, (299, 299), mode='reflect') * 255
car_scaled = car_scaled - 127.5
car_scaled = car_scaled * 0.0078125
car_cnnable = np.array([car_scaled])

这一步不是导致随机性的直接原因,但能让你的输入更符合模型的训练预期,提升分类准确率。

3. 验证检查点加载是否正常

你已经用updates_collections=None解决了模型和检查点不匹配的问题,这一步是对的。可以在加载检查点后,打印一个权重变量的值(比如某个卷积层的权重),确认每次运行脚本时加载的权重都是一样的,确保检查点确实正确加载。

测试效果

修改后再运行脚本,不管是多次执行还是同一次执行多次推理,结果都会完全一致啦!

内容的提问来源于stack exchange,提问作者Syzygy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:31:26