并行多个模型

我有一个 autoencoder 模型和 40 组 16 万个 128 维的数据, 我想把这 40 组数据训练 40 个 autoencoder。
现在的代码是顺序的训练这 40 个模型,实在是太慢了。

tf 可不可以支持并行 40 个模型?

问题补充:
是单卡(P40)


提问人:Francis_Xia,2018-5-4 15:11:12

如果计算力没有饱和,可以尝试用下面的方式创建 Session 以阻止 TF 占据所有显存

sess_conf = tf.ConfigProto ()
sess_conf.gpu_options.allow_growth = True
sess = tf.Session (config=sess_conf)

然后可以创建多个进程并行训练。

但是前提是运算力没有饱和,显存有空余。


pjincz,发表于 2018-5-4 17:01:09

谢谢。恩,我这么做了

写了 python 的多进程,用 map 实现的

from multiprocessing.dummy import Pool as ThreadPool

pool = ThreadPool ()
results = pool.map (task, data)
pool.close ()
pool.join ()

但是报错如下:

TypeError: Cannot interpret feed_dict key as Tensor: Tensor Tensor ("input_1:0", shape=(?, 128), dtype=float32) is not an element of this graph.

Francis_Xia(提问人),2018-5-4 19:48

我觉得这个不是并发带来的问题。你可以试试开多个控制台,手工起多个任务试试。


pjincz,2018-5-6 21:39

40 个模型可以建在一张图上一起训练


yuefengz,发表于 2018-5-6 20:23:39