首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >降低深度神经网络的总损失

降低深度神经网络的总损失
EN

Stack Overflow用户
提问于 2017-08-25 09:12:48
回答 1查看 6.9K关注 0票数 0

我使用tflearn.DNN构建了一个深度神经网络:

代码语言:javascript
复制
# Build neural network
net = tflearn.input_data(shape=[None, 5], name='input')
net = tflearn.fully_connected(net, 64, activation='sigmoid')
tflearn.batch_normalization(net)
net = tflearn.fully_connected(net, 32, activation='sigmoid')
tflearn.batch_normalization(net)
net = tflearn.fully_connected(net, 16, activation='sigmoid')
tflearn.batch_normalization(net)
net = tflearn.fully_connected(net, 8, activation='sigmoid')
tflearn.batch_normalization(net)
# activation needs to be softmax for classification.
# default loss is cross-entropy and the default metric is accuracy
# cross-entropy + accuracy = categorical network
net = tflearn.fully_connected(net, 2, activation='softmax')
sgd = tflearn.optimizers.SGD(learning_rate=0.01, lr_decay=0.96, decay_step=100)
net = tflearn.regression(net, optimizer=sgd, loss='categorical_crossentropy')

model = tflearn.DNN(net, tensorboard_verbose=0)

我尝试了很多东西,但总损失一直围绕着这个价值:

代码语言:javascript
复制
Training Step: 95  | total loss: 0.68445 | time: 1.436s
| SGD | epoch: 001 | loss: 0.68445 - acc: 0.5670 | val_loss: 0.68363 - val_acc: 0.5714 -- iter: 9415/9415

怎样才能减少总损失,提高精度呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-25 11:13:55

为了提高网络性能,可以从数据集和网络两方面考虑。仅仅通过你粘贴的网络结构,如果没有更多关于数据集和你想要得到的目标的信息,就很难给出一个清晰的方法来提高它的准确性。但是,以下是一些有用的实践可以帮助您调试/改进网络:

1.关于数据集

  • 数据集是否与扭曲相平衡?
  • 获取更多的训练数据。
  • 如果可能的话,添加数据增强。
  • 数据正常化。
  • 特征工程。

2.关于网络

  • 网络的大小是否太小/太大?
  • 根据列车历史记录检查过装或不合适,然后选择最佳的时代尺寸。
  • 尝试使用不同的初始化方案初始化权重。
  • 尝试不同的激活函数,损失函数,优化器。
  • 更改层号和单位号。
  • 更改批次大小。
  • 添加辍学层。

为了更深入地分析,以下文章可能会对你有所帮助:

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

https://stackoverflow.com/questions/45878112

复制
相关文章

相似问题

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