Python 什么tensorflow分布表示分类数据列表
我想构造一个变分自动编码器,其中一个样本是一个N*M矩阵,其中每行有M个类别。本质上,一个样本是一个分类数据列表,其中只能选择一个类别-一个热向量列表 目前,我有一个用于这类数据的自动编码器——我在最后一个维度上使用softmax来创建此约束,它可以工作(重建交叉熵很低)Python 什么tensorflow分布表示分类数据列表,python,tensorflow,machine-learning,Python,Tensorflow,Machine Learning,我想构造一个变分自动编码器,其中一个样本是一个N*M矩阵,其中每行有M个类别。本质上,一个样本是一个分类数据列表,其中只能选择一个类别-一个热向量列表 目前,我有一个用于这类数据的自动编码器——我在最后一个维度上使用softmax来创建此约束,它可以工作(重建交叉熵很低) 现在,我想使用tf.distributions创建一个可变自动编码器。我想知道什么样的分发才合适 tf.contrib.distributions.category是否满足您的需求?样本应该是从(0到n-1),其中n代表类别
现在,我想使用tf.distributions创建一个可变自动编码器。我想知道什么样的分发才合适 tf.contrib.distributions.category是否满足您的需求?样本应该是从(0到n-1),其中n代表类别 例如: #logits的形状为[N,M],其中M是类的数量 dist=tf.contrib.distributions.Categorical(logits=logits) #取样20次。应该形成[20,N] 样本=距离样本(20) #深度是类别的数量
one_hots=tf.one_hot(示例,深度=M)tf.contrib.distributions.category是否满足您的需求?样本应该是从(0到n-1),其中n代表类别 例如: #logits的形状为[N,M],其中M是类的数量 dist=tf.contrib.distributions.Categorical(logits=logits) #取样20次。应该形成[20,N] 样本=距离样本(20) #深度是类别的数量
我不明白你的问题到底是什么。通常,您希望潜在向量为单位高斯。例如,在MNIST数据集中,单个像素的概率分布可以用伯努利分布表示。然后,为了构造变分自动编码器的解码器部分,潜在变量(如您所述的正态分布)是784贝努利结果的输入和输出。在我的例子中,结果不仅仅是两个类别,而是n>2个类别。我不明白你的问题到底是什么。通常,您希望潜在向量为单位高斯。例如,在MNIST数据集中,单个像素的概率分布可以用伯努利分布表示。然后,为了构造变分自动编码器的解码器部分,潜在变量(如您所述的正态分布)是784贝努利结果的输入和输出。在我的例子中,结果不仅仅是两个类别,而是n>2个类别。