在Keras中,当使用fit_generator()
时,您可以指定max_q_siz
e,它基本上在后台预取发生器结果以节省延迟。为了有效地工作,你需要有多个工作进程(至少一个用于训练,一个用于预取)。使用单个进程串行填充队列然后将其拉出并不会带来太多好处,开销甚至可能导致性能下降。
来自文档:
max_q_size:生成器队列的最大大小
nb_worker:要启动的最大进程数
pickle_safe:如果为True,请使用基于流程的线程。请注意,由于此实现依赖于多处理,因此不应将非非可选参数传递给生成器,因为它们无法轻松传递给子进程。
您是否需要将nb_worker
明确设置为2或更高(默认值为1),或者是否已经有至少一个额外的工作人员填充队列,因为您的模型训练以获得大于1的生成器队列的好处?
另外,如果您使用多个工作人员,是否需要将pickle_safe
设为True
?