我有一段时间没有使用TensorFlow,现在,当我再次开始使用它时,我的代码的第一个基本行出现了问题:
X = tf.placeholder(name = 'X')
我收到以下错误消息:
AttributeError: module 'tensorflow' has no attribute 'placeholder'
我从谷歌上得到的是,placeholder
方法被弃用了。
所以,我的问题是,我应该从哪里开始阅读,以了解哪些内容被弃用,以及使用TensorFlow的新方法是什么?
您仍然可以通过在运行代码之前选择Tensorflow 1.x
来访问旧的TF 1.x
代码:
%tensorflow_version 1.x
import tensorflow as tf
X = tf.placeholder(tf.float32, name = 'X')
X
输出:
<tf.Tensor 'X_1:0' shape=<unknown> dtype=float32>
在tensorflow渴望执行模式(tensorflow 2.0的更新版本(中,tf.placeholder被tf.keras.Input取代
有关将TF 1.x
代码转换为TF 2.x
的详细信息,请查看本迁移指南。
如果使用脚本,@TFer2的Answer将不起作用。您需要禁用tfv2行为,以便可以使用v1行为。
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
现在你可以使用tf v1了。
我建议看一些tfv1和tfv2任务的例子。这些将帮助您了解主要差异。
例如,tf1中的二进制分类与tf2中的二进制归类。