TensorFlow:来自带有参数=张量的分布的随机正态值

问题描述 投票:1回答:1

我想创建一个输出,在该输出中我从正态分布中获取一个随机值,但是正态分布的参数基于张量变量。

例如:

new = tf.map_fn(lambda x: tf.random.normal([1], x, 1.0), new)    
new = tf.map_fn(lambda x: np.random.normal(0, x, 0.1)[0], new)

其中“新”是一维的tf.Variable类型。这会引发错误:

ValueError:设置具有序列的数组元素。

我很确定这是将张量作为参数添加到这两个random.normal函数中。我如何实现自己想要的?

python tensorflow normal-distribution
1个回答
0
投票

Tensorflow Version 2.x中,用行中的x替换np.abs(x)

new = tf.map_fn(lambda x: np.random.normal(0, x, 0.1)[0], new)解决了该错误。

下面显示的代码将Tensor作为参数传递给两个random.normal函数时成功运行:

%tensorflow_version 2.x
import tensorflow as tf
import numpy as np

new = tf.Variable([1.])

new = tf.map_fn(lambda x: tf.random.normal(shape = [1], mean = x, stddev = 1), new)
new = tf.map_fn(lambda x: np.random.normal(0, np.abs(x), 1)[0], new)

print(new)

输出如下所示:

tf.Tensor([0.00095569], shape=(1,), dtype=float32)
© www.soinside.com 2019 - 2024. All rights reserved.