使用tf.function和tf.Tensor来完成placeholder相同的功能
时间: 2024-02-13 19:07:45 浏览: 170
TF机器学习实战.zip
在 TensorFlow 2.0 中,`tf.placeholder` 被废弃了,推荐使用 `tf.function` 和 `tf.Tensor` 来完成类似的功能。
`tf.function` 是 TensorFlow 2.0 中引入的新特性,可以将 Python 函数编译成 TensorFlow 图。在函数中使用 `tf.Tensor` 对象代替 `tf.placeholder`,相当于在函数中定义了输入参数的形状和类型。例如:
```python
import tensorflow as tf
@tf.function
def my_func(x: tf.Tensor):
y = tf.square(x) + 3
return y
# 调用函数
x = tf.constant(2.0, dtype=tf.float32)
result = my_func(x)
print(result)
```
在上面的例子中,`my_func` 函数使用 `tf.Tensor` 对象 `x` 作为输入参数,而不是使用 `tf.placeholder`。在调用函数时,我们使用 `tf.constant` 函数创建一个 `tf.Tensor` 对象作为输入参数。
需要注意的是,`tf.Tensor` 对象是不可修改的,因此不能像 `tf.placeholder` 那样在运行时动态改变形状和类型。如果需要动态改变形状和类型,可以使用 `tf.Variable` 或者 `tf.reshape` 等函数。
阅读全文