我想使用tf.data从HDD(硬盘驱动器)中读取图像,发现在每个时期训练2388张图片后,该图像占用的内存不会被释放(火车的大小为2388) 。然后它将再次随机播放,从而在多个时期后产生更多的内存。
首先,我使用自定义的buildData函数获取HDD中的映像文件名。buildData获取一个文件夹下的所有文件名。因此firstData表示从第一个文件夹读取的所有文件名,secondData表示从第二个文件夹读取的所有文件名
firstData,secondData=buildData(train_picture_list,train_picture_list_direct)
第二,我创建2个占位符,它们将代表2388个图片文件名
first= tf.placeholder(tf.string,shape=[2388],name='first')
second= tf.placeholder(tf.string,shape=[2388],name='second')
然后,我使用tf.data API
dataset = tf.data.Dataset.from_tensor_slices(( first,second))
dataset = dataset.map(_parse_function)
dataset = dataset.repeat(200).batch(32).shuffle(2388)
iterator = dataset.make_initializable_iterator()
next_element = iterator.get_next()
最后, ①初始化
sess.run(iterator.initializer, feed_dict={first: firstData,
second: secondData})
②使用
runFirst,runSecond=sess.run(next_element)