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

关于训练时设置tf.layers.batch_normalization的training=False获更佳验证效果的疑问

Batch Normalization训练结果异常求助

最近在用TensorFlow训练DNN模型,查资料知道Batch Normalization对模型训练帮助挺大的,就打算在我的模型里引入这个方法。我用的是tf.layers.batch_normalization接口,完全按照API文档的要求来构建网络:训练阶段设置training=True,验证阶段设置training=False,同时还特意添加了tf.get_collection(tf.GraphKeys.UPDATE_OPS)来处理BN层的均值和方差更新操作。

但实际跑起来却出现了奇怪的情况——训练时把training设为False,反而能得到更好的验证结果,这和我预期的完全相反,实在搞不懂哪里出问题了。

附上我的代码片段:

# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np

input_node_num = 257*7
output_node_num = 257

# tf_X等相关定义省略...

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:48:15