我有一个非平凡的输入管道,它包括读取真实数据和原始数据并对它们执行预处理,用 Python 编写。运行单个样本的输入管道需要很长时间,因此我有多个进程(来自 python multiprocessing 包)并行运行并排队以快速执行操作并预取数据。然后使用 feed_dict 将输出馈送到我的网络。这个过程在我的训练循环中的开销比实际的 tf.Session.run() 时间少 2 个数量级。我试图通过用 tf.py_func 包装我的 read+preprocess 函数来转移到 tf.data API,但它运行缓慢,可能是由于 GIL,即使增加了多次调用的数量。我想将我的训练扩展到多台机器,并且不确定在这种情况下数据获取的行为方式,还有'
所以,基本上我的问题是:如何在多个 CPU 内核上并行运行 tf.data api 输入管道中的 python 函数?