TensorFlow 类占位符,以及其他定义输入张量的方法
Posted
技术标签:
【中文标题】TensorFlow 类占位符,以及其他定义输入张量的方法【英文标题】:TensorFlow class Placeholder, and other ways to define input tensor 【发布时间】:2019-10-05 21:11:38 【问题描述】:尝试将 TensorFlow 程序从 Python 转换为 C++,在最新的文档 1.12 和 1.3 中没有发现此类占位符。翻到网上发现,从 1.7 版本开始,Placeholder 类就从官方文档中消失了。尽管如此,该类仍在 TensorFlow library v1.12 v1.13 中,我正在使用它。
在 1.0 版中找到占位符 (array_ops)http://docs1.w3cub.com/tensorflow~cpp/class/tensorflow/ops/placeholder
在 1.4 版中仍然存在 (array_ops)http://docs2.w3cub.com/tensorflow~cpp/class/tensorflow/ops/placeholder
在 1.6 版中仍然存在 (array_ops)http://htmlpreview.github.io/?https://github.com/tensorflow/docs/blob/r1.6/site/en/api_docs/cc/namespace/tensorflow/ops.html
在 1.7+ 版本中没有更多内容http://htmlpreview.github.io/?https://github.com/tensorflow/docs/blob/r1.7/site/en/api_docs/cc/namespace/tensorflow/ops.html
在最新版本 1.13 中也找不到https://www.tensorflow.org/api_docs/cc/group/array-ops
但是这个 Placeholder 类又回到了 2.0 版本https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/placeholder
这是我在 C++ 中使用占位符的方式:
Scope R = Scope::NewRootScope();
Placeholder X = Placeholder(R,DT_FLOAT);
上面的占位符应该用什么替换,还有其他方式来指定X吗?
【问题讨论】:
【参考方案1】:Placeholder 类在 TensorFlow 1.7 到 1.13 中没有记录,但是,它仍然在 TensorFlow 库和标头中。更重要的是,它仍然存在,在 TensorFlow 2.0 中,如问题所述:https://www.tensorflow.org/versions/r2.0/api_docs/cc/class/tensorflow/ops/placeholder
这里还有另一种创建提要张量的方法:https://***.com/a/51834143/5581893
但是,为了将馈送张量(输入、预期)与其他张量层区分开来,使用 Placeholder 类是最好的选择。
【讨论】:
以上是关于TensorFlow 类占位符,以及其他定义输入张量的方法的主要内容,如果未能解决你的问题,请参考以下文章
Keras 输入层和 TensorFlow 占位符之间的区别