Tensorflow数据集框架中make_initializable_iterator()迭代器使用的补充

make_initializable_iterator()迭代器常在使用了placeholder来初始化数据集的构造方法之后,其作用是来动态处理数据。具体代码如下:

input_files = tf.placeholder(tf.string)
dataset = tf.data.TFRecordDataset(input_files)
#由于tfrecords读取出来的是二进制数据,需要对每个数据进行解析,得到想要的格式
#这里使用映射函数对每个数据进行解析
dataset = dataset.map(parser)

#通过一个迭代器获取数据
iterator = dataset.make_initializable_iterator()
feat1,feat2 = iterator.get_next()

with tf.Session() as sess:
    #注意要先对迭代器初始化
    sess.run(iterator.initializer,feed_dict={input_files:['file1','file2']})
    #由于不知道数据集大小,这里使用while循环,当全部数据访问完毕时,则抛出错误
    while True:
        try:
            sess.run([feat1,feat2])
        except:
            break

 

你可能感兴趣的:(Tensorflow学习笔记)