简要问题
在Tensorflow的Python版本中,有一个tf.random.categorical()方法,可以从分类分布中抽取样本。但我在TensorFlow.js API中找不到类似的方法。那么,在TensorFlow.js中从分类分布中抽取样本的正确方法是什么?
详细问题
在使用RNN进行文本生成的教程中,tf.random.categorical()方法在generate_text()
函数中被用来决定下一个应该传递给RNN输入的字符,以生成序列。
predicted_id = tf.random.categorical(predictions, num_samples=1)[-1,0].numpy()
我正在尝试使用TensorFlow.js,并试图在浏览器中生成类似莎士比亚的“随机”写作。教程的所有部分似乎都很好地协同工作,除了使用tf.random.categorical()
方法这一步。
我猜手动编写tf.random.categorical()
函数的替代方案应该不难,此外,已经有一些第三方JavaScript库实现了这一功能,但将其作为TensorFlow.js API的一部分看起来非常合理。
回答:
我认为你可以使用tf.multinomial
来代替。
我查看了源代码,在name
和seed
参数设置为None的情况下,它基本上与tf.multinomial
相同,只是进行了一些随机种子的设置,我想。