首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tensorflow 2.0中的批归一化使预测结果变差

tensorflow 2.0中的批归一化使预测结果变差
EN

Stack Overflow用户
提问于 2019-11-13 21:21:20
回答 1查看 342关注 0票数 1

我建造了一个CNN,其架构如下:

代码语言:javascript
复制
X = self.conv_layer_1(inputs)
X = self.conv_layer_2(X)
X = self.max_pool_1(X)
X = self.dropout_1(X,training = training)
X = self.batch_norm_1(X,training = training)

X = self.conv_layer_3(X)
X = self.conv_layer_4(X)
X = self.max_pool_2(X)
X = self.dropout_2(X,training = training)
X = self.batch_norm_2(X,training = training)

X = self.flatten(X)
X = self.dense_1(X)
X = self.batch_norm_3(X,training = training)
X = self.dropout_3(X)
X = self.softmax(X)

return X

如果我不使用batch_normalization层,我得到了良好的准确性(训练95%,测试79 %)。如果我只使用self.batch_norm_3,那么结果会变得越来越糟,在测试集上,损失会急剧增加(就像每3-4个周期从1.23123到500000)。

如果我使用self.batch_norm_1和/或self.batch_norm_2,我总能得到10%的测试和训练的准确性)。

为什么会发生这种情况?

我使用了CIFAR-10数据集。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-13 22:43:20

这个link可以帮助你理解。

请注意-密集层是一个FC层,进一步用于预测,没有必要标准化其输出。当输入数据有很大的变化(也称为协变量移位)时,标准化和批次范数是有用的,这将进一步为CNN层造成不平衡的输入数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58845793

复制
相关文章

相似问题

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