我想构造一个变分自动编码器,其中一个样本是一个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)

#depth是类别数。

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

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

10-09 03:44