python - 什么 tensorflow 分布来表示分类数据列表

标签 python tensorflow machine-learning

我想构造一个变分自动编码器,其中一个样本是一个 N*M 矩阵,其中每一行有 M 个类别。本质上,一个样本是一个分类数据列表,其中只能选择一个类别 - 一个单热向量列表。

目前,我有一个适用于此类数据的自动编码器 - 我在最后一个维度上使用 softmax 来创建此约束,并且它有效(重建交叉熵很低)。

现在,我想使用 tf.distributions 创建一个变分自动编码器。我想知道什么样的分布才是合适的。

最佳答案

tf.contrib.distributions.Categorical 满足您的需求吗?样本应介于 (0 到 n - 1) 之间,其中 n 代表类别。

示例:

# logits 的形状为 [N, M],其中 M 是类别数

dist = tf.contrib.distributions.Categorical(logits=logits)

# 采样 20 次。应给出形状 [20, N]。

样本= dist.sample(20)

#深度是类别数。

one_hots = tf.one_hot(样本,深度=M)

关于python - 什么 tensorflow 分布来表示分类数据列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50037919/

相关文章:

python - mypy 如何接受 pydantic 的 constr() 类型?

python - tensorflow 2.0 : tf. GradientTape().gradient() 返回无

python-3.x - 如何为 windows 7 32 位系统安装 tensorflow?我在我的系统中安装了 python 3.5(32 位)并安装了 anaconda 3.4.4(32 位)

android - 使用开源机器学习 Datumbox 框架

machine-learning - 用于可解释机器学习的 Shapley 值和 SHAP 之间的差异

python - 修改张量

python - Selenium 和 python3 激活文本框而不输入值

python提取特定帮助模块的信息

python - 在 TensorFlow 中使用实验的优势

python - 查询产生不正确的结果