如何从张量流中的常量创建向量
How to create a vector from a constant in tensorflow
如何从张量流 constant/variable 等创建张量流向量?
例如,我有一个常量 x
,我想创建一个 [x]
的向量。
我已经尝试了下面的代码,但它不起作用。
任何帮助将不胜感激。
x = tf.placeholder_with_default(1.0,[], name="x")
nextdd = tf.constant([x], shape=[1], dtype=tf.float32)
首先我想为你定义一个张量:
张量是 n-dimensional 矩阵。 0 阶张量是标量,例如42. 秩为 1 的张量是一个向量,例如[1,2,3],2 阶张量是矩阵,3 阶张量可能是形状为 [640, 480, 3] 的图像(640x480 分辨率,3 个颜色通道)。 4 阶张量可能是一批形状为 [10, 640, 480, 3](10 640x480 图像)等的图像
其次,Tensorflow 中基本上有 4 种类型的张量。
1) 占位符 - 这些是您在调用 sess.run
时传递到 tensorflow 中的张量。例如:sess.run([nextdd], {x:[1,2,3]})
从 x
.
创建一个 1 阶张量
2) 常量——顾名思义,这些是固定值。例如。 tf.constant(42)
并且应该在编译时指定,而不是运行时(避免你在这里犯的主要错误)。
3) 计算张量 - x = tf.add(a,b)
是一个计算张量,它是从 a,b 计算出来的。计算完成后不存储它的值。
4) 变量 - 这些是计算完成后保留的可变张量。例如神经网络的权重。
现在明确回答您的问题。 x
已经是一个张量。如果你传入一个向量,那么它就是一个 1 阶张量(又名向量)。您可以像使用常量、计算张量或变量一样使用它。它们在操作中的工作方式相同。 nextdd 行根本没有理由。
现在,nextdd
失败了,因为您试图从变量项创建常量,这不是定义的操作。 tf.constant(42)
定义明确,这就是常量。
您可以直接使用 x,如:
x = tf.placeholder_with_default(1.0,[], name="x")
y = tf.add(x, x)
sess = tf.InteractiveSession()
y.eval()
结果:
2.0
根据您的描述,您似乎想使用 tf.expand_dims
:
# 't' is a tensor of shape [2]
tf.shape(tf.expand_dims(t, 0)) # [1, 2]
tf.shape(tf.expand_dims(t, 1)) # [2, 1]
tf.shape(tf.expand_dims(t, -1)) # [2, 1]
如何从张量流 constant/variable 等创建张量流向量?
例如,我有一个常量 x
,我想创建一个 [x]
的向量。
我已经尝试了下面的代码,但它不起作用。 任何帮助将不胜感激。
x = tf.placeholder_with_default(1.0,[], name="x")
nextdd = tf.constant([x], shape=[1], dtype=tf.float32)
首先我想为你定义一个张量:
张量是 n-dimensional 矩阵。 0 阶张量是标量,例如42. 秩为 1 的张量是一个向量,例如[1,2,3],2 阶张量是矩阵,3 阶张量可能是形状为 [640, 480, 3] 的图像(640x480 分辨率,3 个颜色通道)。 4 阶张量可能是一批形状为 [10, 640, 480, 3](10 640x480 图像)等的图像
其次,Tensorflow 中基本上有 4 种类型的张量。
1) 占位符 - 这些是您在调用 sess.run
时传递到 tensorflow 中的张量。例如:sess.run([nextdd], {x:[1,2,3]})
从 x
.
2) 常量——顾名思义,这些是固定值。例如。 tf.constant(42)
并且应该在编译时指定,而不是运行时(避免你在这里犯的主要错误)。
3) 计算张量 - x = tf.add(a,b)
是一个计算张量,它是从 a,b 计算出来的。计算完成后不存储它的值。
4) 变量 - 这些是计算完成后保留的可变张量。例如神经网络的权重。
现在明确回答您的问题。 x
已经是一个张量。如果你传入一个向量,那么它就是一个 1 阶张量(又名向量)。您可以像使用常量、计算张量或变量一样使用它。它们在操作中的工作方式相同。 nextdd 行根本没有理由。
现在,nextdd
失败了,因为您试图从变量项创建常量,这不是定义的操作。 tf.constant(42)
定义明确,这就是常量。
您可以直接使用 x,如:
x = tf.placeholder_with_default(1.0,[], name="x")
y = tf.add(x, x)
sess = tf.InteractiveSession()
y.eval()
结果:
2.0
根据您的描述,您似乎想使用 tf.expand_dims
:
# 't' is a tensor of shape [2]
tf.shape(tf.expand_dims(t, 0)) # [1, 2]
tf.shape(tf.expand_dims(t, 1)) # [2, 1]
tf.shape(tf.expand_dims(t, -1)) # [2, 1]