将代码里所有
’num_workers'设为0
报错信息 "Can't pickle local object 'get_dataset.<locals>.<lambda>'" 通常出现在使用多进程加载数据时,特别是在使用 Python 的
multiprocessing
模块时。这个错误是由于 Python 无法将局部函数(local function)序列化(pickle)导致的。在多进程数据加载过程中,数据加载器会尝试将数据集对象以及相关的函数传递给子进程,但某些函数可能是局部函数,不能被序列化。将
num_workers
设置为 0 可能会解决这个问题,因为当num_workers
为 0 时,数据加载将在主进程中进行,不涉及子进程。这意味着不需要序列化局部函数,因此不会出现上述错误。