在调整了帖子末尾链接中提供的代码后,即从包含0-1字母表的变长字符串文件中读取,并通过LSTMCell
和MultiRNNCell
设置层数的能力,我得到了0.5的精度值。
特别是,字符串是一种规则语言,每个字符串被标记为接受或不接受。
我想寻求一些建议,了解哪些参数的变化可以获得更高的精度值:
可能需要设置的参数包括:
learning_rate – training_iters – batch_size – display_step – n_layers – seq_max_len – n_hidden – n_classes.
提前感谢!
回答:
在没有更多信息的情况下,这个问题很难回答。我将从一般角度独立讨论每个参数:
- 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 – 你应该选择一个使模型损失减少的值。如果损失不减少,选择一个更低的learning_rate。
- training_iters – 你应该监控验证集上的损失(和其他指标),并选择最佳的迭代次数。