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

论坛 期权论坛 脚本     
匿名技术用户   2021-1-6 02:13   340   0

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

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP