为什么使用tf.data shuffle时内存不释放?

时间:2019-02-03 08:15:01

标签: tensorflow

我想使用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)

0 个答案:

没有答案