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

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值