AttributeError: module 'tensorflow' has no attribute 'placeholder'
时间: 2023-09-12 17:12:31 浏览: 161
这个错误通常是因为 TensorFlow 2.x 移除了 `tf.placeholder`。在 TensorFlow 2.x 中,可以使用 `tf.compat.v1.placeholder` 或者直接使用 `tf.Variable` 代替。以下是一个简单的示例,演示如何使用 `tf.Variable` 代替 `tf.placeholder`:
```python
import tensorflow as tf
# 声明一个占位符变量
# x = tf.placeholder(tf.float32, shape=[None, 784])
x = tf.Variable(initial_value=tf.zeros(shape=[None, 784]), dtype=tf.float32)
# 使用 x 变量进行计算
y = tf.nn.softmax(tf.matmul(x, W) + b)
# 初始化变量
init = tf.global_variables_initializer()
# 创建一个会话
with tf.Session() as sess:
# 运行初始化操作
sess.run(init)
# 运行计算图
result = sess.run(y, feed_dict={x: data})
```
在这个示例中,我们使用 `tf.Variable` 替代了 `tf.placeholder`。`tf.Variable` 可以接收一个初始值,这个初始值可以是任何形状的张量,所以我们使用了一个形状为 `[None, 784]` 的全零张量作为初始值。在计算图中,我们直接使用这个 `x` 变量进行计算。在运行时,我们通过 `feed_dict` 参数将数据传递给 `x` 变量。
阅读全文