python - 使用 Tensorflow 迭代器加载 .npz 的有效方法
问题描述
我有一个大型.npz
numpy 培训文件,我想更有效地阅读。我尝试遵循 Tensorflow 文档(https://www.tensorflow.org/guide/datasets#sumption_numpy_arrays)中的方法:
作为替代方案,您可以根据 tf.placeholder() 张量定义数据集,并在对数据集初始化迭代器时提供 NumPy 数组。
然而,在实现迭代器之后,我的模型甚至消耗了 2 倍以上的内存。你有什么线索这里可能有什么问题吗?
def model(batch_size):
x = tf.placeholder(tf.float32,[None, IMGSIZE,IMGSIZE,1])
y = tf.placeholder(tf.float32,[None, n_landmark * 2])
z = tf.placeholder(tf.int32, [None, ])
Ret_dict['x'] = x
Ret_dict['y'] = y
Ret_dict['z'] = z
Ret_dict['iterator'] = iter_
dataset = tf.data.Dataset.from_tensor_slices((x, y, z)).batch(batch_size)
iter_ = dataset.make_initializable_iterator()
InputImage, GroundTruth, GroundTruth_Em = iter_.get_next()
Conv1a = tf.layers.conv2d(InputImage,64,3,1,..)
(...)
def main():
trainSet = np.load(args.datasetDir)
Xtrain = trainSet['Image']
Ytrain = trainSet['Label_1']
Ytrain_em = trainSet['Label_2']
with tf.Session() as sess:
my_model = model(BATCH_SIZE)
Saver = tf.train.Saver()
Saver.restore(sess, args.pretrainedModel)
sess.run(
[model['Optimizer'], model['iterator'].initializer],
feed_dict={model['x']:Xtrain,
model['y']:Ytrain,
model['z']:Ytrain_em})
解决方案
推荐阅读
- javascript - 控制屏幕阅读器 - 让屏幕阅读器在呈现特定元素时进行阅读
- reactjs - 无法使用反应挂钩表单获取文件上传的formData值
- go - goroutines 耗时太长
- python - 根据条件合并列表中的项目
- azure - 如何删除 Azure WebApp AppSetting WEBSITE_TIME_ZONE
- latex - 没有出现带有词汇表包的乳胶词汇表+添加更多列
- sql - Oracle将两行合并为具有更多列的单行
- php - 使用 exec 调用时 pdfinfo 不显示结果
- java - NonUniqueObjectException 更新中的休眠异常
- postgresql - 索引多租户数据库