我有一个 autoencoder 模型和 40 组 16 万个 128 维的数据, 我想把这 40 组数据训练 40 个 autoencoder。
现在的代码是顺序的训练这 40 个模型,实在是太慢了。
tf 可不可以支持并行 40 个模型?
问题补充:
是单卡(P40)
提问人:Francis_Xia,2018-5-4 15:11:12
我有一个 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