【问题标题】:Testing accuracy 0.5 TensorFlow RNN variable length strings测试精度 0.5 TensorFlow RNN 可变长度字符串
【发布时间】:2017-04-07 05:34:29
【问题描述】:

在修改了您在帖子末尾的链接中找到的以下代码后,即从具有字母 0-1 的可变长度字符串文件中读取并能够通过LSTMCell 设置层数和MultiRNNCell 我得到的精度值为 0.5。

特别是,字符串是一种常规语言,每个字符串都被标记为接受和不接受。

我想要一些关于改变哪些参数以获得更准确的值的建议:

可能需要设置的参数:

learning_rate - training_iters - batch_size - display_step - n_layers - seq_max_len - n_hidden - n_classes。

提前致谢!

https://github.com/aymericdamien/TensorFlow-Examples/blob/master/examples/3_NeuralNetworks/dynamic_rnn.py

【问题讨论】:

    标签: tensorflow artificial-intelligence deep-learning recurrent-neural-network lstm


    【解决方案1】:

    如果没有更多信息,很难回答这个问题。我将从一般的角度独立处理每个参数:

    • n_classes:根据您的描述,我了解到您正在解决二进制分类问题。因此,n_classes=2。
    • seq_max_len 表示序列的最大长度。您可以从计算输入的最大长度开始并使用它(如果最大长度太大,则可以使用任何其他合理的长度)。
    • n_layers, n_hidden - 我建议在获得能够学习的模型时调整这些参数。首先,将它们设置为一些较低的值,例如n_layers = 1 或 2,n_hidden = 64。
    • batch_size - 100 或接近的值应该可以开始,
    • display_step - 它不影响生成模型的质量,只影响脚本打印中间统计数据的频率。
    • learning_rate - 您应该选择此值,以减少模型损失。如果 loss 没有减少,则选择较低的 learning_rate
    • training_iters - 您应该监控验证集的损失(和其他指标)并选择最佳迭代次数。

    【讨论】:

    • 非常感谢您的回答。我从昨天开始就在尝试这种方式。
    • 不客气。首先要检查的是训练模型时损失值是否在减少。如果不是,则表明模型或优化存在问题(可能学习率太高)。
    • 我尝试更改参数,但不幸的是,我总是得到较低的准确度值和较高的误差。
    猜你喜欢
    • 2020-12-17
    • 2020-06-04
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2011-10-12
    相关资源
    最近更新 更多