【问题标题】:Using generators on networks ending with tensorflow probability layer在以张量流概率层结尾的网络上使用生成器
【发布时间】:2020-02-21 15:28:16
【问题描述】:

我有一个以概率层结尾的网络,如下所示:

model = tfk.Sequential([
            tfkl.InputLayer(10),
            tfkl.Dense(tfpl.MultivariateNormalTriL.params_size(2)),
            tfpl.MultivariateNormalTriL(2)])

我正在从生成器创建我的数据集:

data_generator = tf.data.Dataset.from_generator(
            data_generator,
            output_types=(tf.float32, tf.float32)
).batch(batch_size)

我可以用fit_generator 拟合模型,但我怎样才能对预测做同样的事情呢? (我试过predict_generator,但没有成功)

此外,如果 X 是一个 numpy 数组,我可以只做 model(X).sample(100) 我想对我的生成器做同样的事情,比如 model(data_generator).sample(100)。任何想法?

【问题讨论】:

    标签: python tensorflow tensorflow-datasets tf.keras tensorflow-probability


    【解决方案1】:

    也许您可以再添加一层:

    model = tfk.Sequential([
        tfkl.InputLayer(10),
        tfkl.Dense(tfpl.MultivariateNormalTriL.params_size(2)),
        tfpl.MultivariateNormalTriL(2),
        tfkl.Lambda(lambda x: tf.transpose(x.sample(100), perm=[1,0,2]))])
    

    然后使用

    model.predict_generator(data_generator, steps=steps)
    

    或者您需要对生成的分布做更多的事情而不仅仅是样本?

    编辑:因为在这种情况下,也许您可​​以创建一个生成器,将批次作为 numpy 数组提供给模型并产生结果分布?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-15
      相关资源
      最近更新 更多