为我的ML模型处理批次需要花费太多时间,所以我正在考虑将它们并行化。
现在,预处理程序从SSD中获取数据,进行预处理并形成用于学习的数据结构。所有这些ML训练过程都在等待。然后ML过程获取此数据并使用它来训练模型。现在预处理等待。然后他们四处走动。这个等待时间很快就会总结并推迟模型培训。
计划如下:单个数据结构将存储一堆数据点。训练算法的每一步都会采用它们的随机子集来训练模型(在GPU上使用TensorFlow进行SGD)。
与此同时,我希望另一个线程对下一组数据点进行预处理。当预处理准备就绪时,它将用新的数据结构对象替换旧的数据结构对象。等等。
由于这是我在Python中进行并行化的第一种方法,我想知道这是否会起作用。全局解释器锁是否会阻止系统以真正的并行方式执行这些任务?