如何使用张量初始化tensorflow中的变量?

时间:2019-06-23 05:30:33

标签: python tensorflow

我正在尝试使用tf.nn.embedding_lookup()并收到以下警告:

UserWarning: Converting sparse IndexedSlices to a dense Tensor of unknown shape. This may consume a large amount of memory.

我在此link中读到,为避免此问题,我们应确保输入到tf.nn.embedding_lookup()的参数是tf.Variable

但是我传递给tf.nn.embedding_lookup()的张量已经是另一个操作的输出,并且我想我无法使用它来初始化tf.Variable

有没有办法将张量转换为tf.variable或用另一个张量初始化一个张量?

1 个答案:

答案 0 :(得分:1)

  

tf.Variable代表一个张量,其值可以通过以下方式更改   在上面运行操作。

     

在内部,一个tf.Variable存储一个持久张量

来源:https://www.tensorflow.org/guide/variables

您可以使用 Tensor 对象tf.Tensor

初始化tf.Variable。
# Create a variable.
w = tf.Variable(<initial-value>, name=<optional-name>)

initial_value :一个Tensor或可转换为Tensor的Python对象,它是变量的初始值。

除非将validate_shape设置为False,否则初始值必须具有指定的形状。也可以是不带参数的可调用对象,该参数在被调用时返回初始值。在这种情况下,必须指定dtype。

(请注意,init_ops.py中的初始化函数必须先绑定到形状上,然后才能在此处使用。)

总而言之,您可以使用另一个 Tensor 对象初始化tf.Variable