【问题标题】:Neural Network - how to test that it is implemented properly?神经网络 - 如何测试它是否正确实施?
【发布时间】:2018-03-27 00:16:27
【问题描述】:

我已经使用 Tensorflow 实现了神经网络。在实施和培训期间,我发现了几个不那么微不足道的错误。 示例:在训练期间,我在不同的步骤/时期有相同的 Mini-Batch 损失,但准确度不同。

现在神经网络似乎已经准备好并且可以正常工作了。我还没有很好地训练它,但我正在努力。

无论如何,我想以某种方式检查我没有在那里做任何计算错误。我正在考虑为“假”分类问题生成一些人工数据,比如 4 个特征。分类应该在分类输出和 4 个特征之间具有非常清晰的人类可理解的依赖关系。我们的想法是尝试在其上训练 NN 并查看其性能。

你怎么看?

【问题讨论】:

    标签: tensorflow neural-network


    【解决方案1】:

    Stanford 的 c231n 对此提供了一些通用提示,例如梯度检查。

    如果您只是学习神经网络,为什么不尝试在一些已知数据上运行您的实现呢?许多课程提供具有指定超参数的模型的误差和损失曲线,因此您可以检查您的实现行为是否与正确实现有显着差异。

    【讨论】:

    • 我已经通过 Tensorflow 实现了 NN。所以梯度其实就是一行代码: tf.reduce_mean(tf.nn.weighted_cross_entropy_with_logits(logits=logits, targets=Y, pos_weight=0.1))
    • 关于数据,你是对的..会尝试找到..但不幸的是,大多数基本示例都是关于使用 softmax 进行图像识别..但感谢您的好提示。
    • 如果你只是想检查你的实现,那么你使用的数据应该无关紧要
    • 好的。将其视为答案并尝试朝这个方向发展。谢谢。
    猜你喜欢
    • 2017-06-11
    • 2020-08-27
    • 1970-01-01
    • 2012-09-19
    • 2018-10-30
    • 2016-07-28
    • 1970-01-01
    • 2017-12-28
    • 2010-10-24
    相关资源
    最近更新 更多