如何从 TensorFlow.js 中的分类分布中抽取样本

How to draw samples from a categorical distribution in TensorFlow.js

问题简述

Tensorflow there is a tf.random.categorical() method that draws samples from a categorical distribution. But I can't find a similar method in TensorFlow.js API 的 Python 版本中。 那么,从 TensorFlow.js 中的分类分布中抽取样本的正确方法是什么?

问题详情

Text generation with an RNN tutorial the tf.random.categorical() 中,方法正在 generate_text() 函数中使用,以确定应在 RNN 输入旁边传递什么字符以生成序列。

predicted_id = tf.random.categorical(predictions, num_samples=1)[-1,0].numpy()

我正在试验 TensorFlow.js 并尝试在浏览器中生成 "random" 类似莎士比亚的作品。除了使用 tf.random.categorical() 方法的步骤外,本教程的所有部分似乎都能很好地协同工作。

我想手动编写 tf.random.categorical() 函数的替代方案应该不会那么难,而且已经有几个第 3 方 JavaScript 库实现了这个功能,但它看起来很合乎逻辑将其作为 TensorFlow.js API.

的一部分

我想你可以改用 tf.multinomial

我查看了 source code 并将 nameseed 参数设置为 None,它与 tf.multinomial 基本相同,但有一些随机我猜播种正在进行中。