在Windows下,由于'multiprocessing'模块的限制,'Generatorenqueuer'类的'start'方法中的多进程部分无法正常执行。这是因为以下代码在'workers = 0'时无法正常执行:

for _ in range(workers):
    if self._use_multiprocessing:
        # Reset random seed else all children processes
        # share the same seed
        np.random.seed(self.seed)
        thread = multiprocessing.Process(target=data_generator_task)
        thread.daemon = True
        if self.seed is not None:
            self.seed += 1
    else:
        thread = threading.Thread(target=data_generator_task)
    self._threads.append(thread)
    thread.start()

要解决这个问题,可以将'workers'参数设置为1,即将'workers = 0'改为'workers = 1'。

修改后的代码如下:

if os.name is 'nt':
    workers = 1

这样就可以避免多进程部分的代码无法执行的问题,保证训练过程的正常进行。

Windows下TensorFlow模型训练多进程问题解决:Generatorenqueuer类start方法失效

原文地址: https://www.cveoy.top/t/topic/fpx7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录