测试精度 0.5 TensorFlow RNN 可变长度字符串

Testing accuracy 0.5 TensorFlow RNN variable length strings

修改 post 末尾 link 中的以下代码后,即从可变长度字符串文件中读取字母表 0-1 并能够通过 LSTMCellMultiRNNCell 设置层数我得到的精度值为 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

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

  • 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 - 你应该选择这个值,这样模型损失就会减少。如果损失没有减少,select一个较低的learning_rate
  • training_iters - 您应该监控验证集的损失(和其他指标)和 select 最佳迭代次数。