python - TensorFlow 占位符维度 - 有什么区别?

标签 python machine-learning tensorflow

刚接触 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 会以不同的方式考虑它。 例如,使用第二个版本无法进行大小为 3x4 的矩阵的矩阵乘法,因为维度 1 和 3 不匹配。 Tensorflow 将能够在图构建时检测到这一点。

此外,在代码可读性方面,如果将来可能会更改此维度,那么拥有额外的维度 1 可能有利于一般理解。例如,如果您的数据点是单变量时间序列,请使用

x = tf.placeholder(tf.float32, [None, seq_size, 1])

可以更轻松地将结果扩展到维度为 d>1 的多元时间序列

x = tf.placeholder(tf.float32, [None, seq_size, d])

因为所有代码都已经考虑了这个额外的维度。

关于python - TensorFlow 占位符维度 - 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42490755/

相关文章:

Matlab 朴素贝叶斯

python - 光谱聚类 Scikit 学习集群中的打印项目

javascript - Tensorflow.js SymbolicTensor 不被接受为输入

python - 完全禁用 Tensorflow 日志记录

python - GridSearchCV:评分不使用选择的 XGBRegressor 评分方法

python - 如何在函数调用中将 DataFrame 解包为单独的系列?

python - 如何根据特定顺序对 pandas 列进行排序?

python - 如何创建具有重复字符串值的数据框列?

machine-learning - 为什么这个卷积的输出有这些维度?

python - 训练 E-net 进行人体分割