版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010472607/article/details/81946655
在Eager Execution模式下,placeholder
操作无法与之兼容,可以使用tf.data
提供的API来导入数据
Eager模式简单教程:https://github.com/madalinabuzau/tensorflow-eager-tutorials
Eager模式下使用tf.data
和静态图模式下基本一致,区别只在于迭代的创建
。在未来,或许 Google会消除这些不同。
一. Eager模式
开启Eager模式的方法,前面的文章已经介绍了2种,最初的eager模块api放在contrib中,现在新版的TensorFlow中已成为核心API,可以直接访问
二. Eager 模式下的tf.data
#eager 在 contrib 中时的开启方法
import tensorflow.contrib.eager as tfe
tfe.enable_eager_execution()
dataset = tf.data.Dataset.from_tensor_slices(np.array([1.0, 2.0, 3.0, 4.0, 5.0]))
for one_element in tfe.Iterator(dataset): # 注意区别
#print(one_element)
print(one_element.numpy(), " -> ", one_element)
或者
#eager 成为 核心api 后的开启方法
import tensorflow as tf
tf.enable_eager_execution()
dataset = tf.data.Dataset.from_tensor_slices(np.array([1.0, 2.0, 3.0, 4.0, 5.0]))
for one_element in tf.data.Iterator(dataset): # 注意区别
print(one_element.numpy(), " -> ", one_element)
输出
1.0 -> tf.Tensor(1.0, shape=(), dtype=float64)
2.0 -> tf.Tensor(2.0, shape=(), dtype=float64)
3.0 -> tf.Tensor(3.0, shape=(), dtype=float64)
4.0 -> tf.Tensor(4.0, shape=(), dtype=float64)
5.0 -> tf.Tensor(5.0, shape=(), dtype=float64)
tensorflow==1.9