我想构建一个变分自动编码器,其中一个样本是N * M矩阵,其中每行有M个类别。基本上一个样本是分类数据列表,其中只能选择一个类别 - 一个热矢量列表。
目前,我有一个工作自动编码器用于这种类型的数据 - 我在最后一个维度上使用softmax来创建这个约束并且它可以工作(重建交叉熵很低)。
现在,我想使用tf.distributions来创建变量自动编码器。我想知道什么样的分配是合适的。
答案 0 :(得分:2)
tf.contrib.distributions.Categorical能否满足您的需求?样本应该是(0到n - 1),其中n代表类别。
示例:
#logits具有形状[N,M],其中M是类的数量
dist = tf.contrib.distributions.Categorical(logits = logits)
#Sample 20次。应该给出形状[20,N]。
samples = dist.sample(20)
#defide是类别的数量。
one_hots = tf.one_hot(样本,深度= M)