繁体   English   中英

TensorFlow占位符尺寸-有什么区别?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM