我需要在 TensorFlow 中创建一个矩阵来存储一些值。诀窍是矩阵必须支持动态形状。
我正在尝试在 numpy 中做同样的事情:
myVar = tf.Variable(tf.zeros((x,y), validate_shape=False)
哪里x=(?)
和y=2
。但这不起作用,因为 zeros 不支持“部分已知的 TensorShape”,所以,我应该如何在 TensorFlow 中执行此操作?
我需要在 TensorFlow 中创建一个矩阵来存储一些值。诀窍是矩阵必须支持动态形状。
我正在尝试在 numpy 中做同样的事情:
myVar = tf.Variable(tf.zeros((x,y), validate_shape=False)
哪里x=(?)
和y=2
。但这不起作用,因为 zeros 不支持“部分已知的 TensorShape”,所以,我应该如何在 TensorFlow 中执行此操作?
如果您知道会话的形状,这可能会有所帮助。
import tensorflow as tf
import numpy as np
v = tf.Variable([], validate_shape=False)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(sess.run(v, feed_dict={v: np.zeros((3,4))}))
print(sess.run(v, feed_dict={v: np.zeros((2,2))}))
1)您可以使用tf.fill(dims, value=0.0)
which 适用于动态形状。
2)您可以为变量尺寸使用占位符,例如:
m = tf.placeholder(tf.int32, shape=[])
x = tf.zeros(shape=[m])
with tf.Session() as sess:
print(sess.run(x, feed_dict={m: 5}))