相关疑难解决方法(0)

并行化tf.data.Dataset.from_generator

我有一个非常简单的输入管道,from_generator非常适合......

dataset = tf.data.Dataset.from_generator(complex_img_label_generator,
                                        (tf.int32, tf.string))
dataset = dataset.batch(64)
iter = dataset.make_one_shot_iterator()
imgs, labels = iter.get_next()
Run Code Online (Sandbox Code Playgroud)

其中complex_img_label_generator动态生成图像,并返回表示一个numpy的阵列(H, W, 3)图像和一个简单的string标签.处理不是我可以表示从文件和tf.image操作中读取的内容.

我的问题是关于如何平衡发电机?我如何让N个这些生成器在自己的线程中运行.

一个想法是使用dataset.mapnum_parallel_calls处理线程; 但是地图在张量上运行......另一个想法是创建多个生成器,每个生成器都有自己的,prefetch并以某种方式加入它们,但我看不出我如何加入N个生成器流?

我可以遵循任何规范的例子吗?

tensorflow tensorflow-datasets

25
推荐指数
3
解决办法
9029
查看次数

如何在训练多类 CNN 模型时存储和加载包含 5000 万个 25x25 numpy 数组的训练数据?

我有一个图像处理问题,其中有五个类,每个类有大约 1000 万个示例作为训练数据,其中图像是 z 得分的 25x25 numpy 数组。

显然,我无法将所有训练数据加载到内存中,因此我必须使用fit_generator.

我也是生成和扩充这些训练数据矩阵的人,但我无法实时进行,fit_generator因为训练模型太慢了。

首先,如何在磁盘上存储 5000 万个 25x25 .npy 数组?最好的做法是什么?

其次,我应该使用数据库来存储这些矩阵并在训练期间从中查询吗?我认为 SQLite 不支持多线程,并且 SQL 数据集支持在 tensorflow 中仍处于试验阶段。

我很想知道是否有一种巧妙的方法来存储这 5000 万个矩阵,以便在训练期间进行检索是最佳的。

三、使用HDF5格式怎么样?我应该改用pytorch吗?

python deep-learning keras tensorflow pytorch

5
推荐指数
1
解决办法
1695
查看次数