以下代码:
import tensorflow as tf
tfd = tf.contrib.distributions
mean = [0.0, 0.0]
scale = [1.0, 1.0]
dist = tfd.MultivariateNormalDiag(loc=mean, scale_diag=scale)
samp = dist.sample([None])
给出错误:
TypeError: Expected int32, got None of type '_Message' instead.
但是如果将None替换为整数n,则会从分布中生成n个样本。有什么方法可以从分布中获取未知数量的样本?
编辑:原始问题可能措辞不佳;我想采样一个形状的张量(无,...)以与该形状的其他张量组合。显然,需要在其中某处输入内容以在运行时确定大小。
答案 0 :(得分:1)
你可以做
num_samples = tf.placeholder(dtype=tf.int32, shape=())
sampl = dist.sample(num_samples)
,然后输入样品数量。同样,如果您有一个表示样本数量的标量张量,则可以将其传递。