我目前正在使用TensorFlow处理RNN LM。我从TensorFlow教程(tuto; sources)开始,并自定义了脚本(https://github.com/pltrdy/tf_rnnlm/)。
我似乎普遍认为噪声对比度估算(NCE)运行得更快。所以我运行了4个配置运行的基准测试,使用4个丢失功能(我特别想测试softmax与NCE)。结果显示为here。
速度(每秒字数)差异不足以得出任何结论。
我不确定该怎么想:NCE是非常强大吗?我错过了什么吗?
请告诉我你是否有任何线索, THX
pltrdy
编辑:
同样tensorflow refers到this paper (sec. 3)表示“使用提议的方法 [采样softmax?] ,训练的计算复杂度相对于常数目标词汇量的大小“
在我们的基准测试中,这根本不是(根本)。
答案 0 :(得分:0)
NCE或采样softmax对于训练具有大词汇量的LM是必不可少的。如果你将词汇量增加到500k,你会发现NCE和完全softmax之间存在显着差异。您的基准测试链接似乎已被破坏。但是,如果你使用大词汇量,你应该看到差异。