![](/img/trans.png)
[英]What is the meaning of adding specific dimension to "None+" in tensorflow's placeholder?
[英]TensorFlow placeholder dimension - what's the difference?
TensorFlow的新手,但是对此占位符声明问题感到困惑。 将占位符x定义为的确切区别是什么:
x = tf.placeholder(tf.float32, [None, seq_size])
相对于此?
x = tf.placeholder(tf.float32, [None, seq_size, 1])
我在考虑矩阵。 可以这么说,假设变量x供给了10个值,并且seq_size为3-第一个变量为10x3,第二个变量为10x3x1。 为什么tensorflow会不同地考虑它们?
Tensorflow将出于形状验证的目的对其进行不同的考虑。 由于尺寸1和尺寸3不匹配,因此在第二个版本中将无法使用例如3x4大小的矩阵进行矩阵乘法。 Tensorflow将能够在图构建时检测到它。
同样,在代码可读性方面,如果将来可能会更改此维度,那么对于一般理解而言,增加额外的维度1可能会很好。 例如,如果您的数据点是单变量时间序列,则使用
x = tf.placeholder(tf.float32, [None, seq_size, 1])
将使您更容易将结果扩展到维度d>1
多元时间序列
x = tf.placeholder(tf.float32, [None, seq_size, d])
因为所有代码都已经考虑了这个额外的维度。
x = tf.placeholder(tf.float32, [None, seq_size, 1])
这里的'x'是一个占位符,用于保存大小为[anything,seq_size,1]的张量。 这对于矩阵运算非常有用,在矩阵运算中,通过将其多维转换为高维矩阵,可以轻松地执行某些多维运算。
PS:形状为[None,seq_size]和[None,seq_size,1]的数组中的元素数可以相同。 它们可以很容易地彼此重塑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.