train = AudioFrameDataset('./datas/v2f_train.csv', transform=transform)
trainloader = torch.utils.data.DataLoader(train, batch_size=B, num_workers=NUM_WORKERS, shuffle=True)
举个例子,如上代码,dataloader里有一个参数是numworks,如果设为0就是单个进行执行数据的加载任务,这样在windows下不会有任何问题,但如果设为1或者1以上的数字,就是会启动对应数量的进程单独去进行的数据的加载任务。
这样做在linux下是没有问题的,但因为windows中没有现成的fork函数可以供python调用,所以在windows下需要重新创建一个新的过程代码,也就是重新运行你的脚本,来模拟fork的功能。
所以需要让程序知道你代码里什么需要执行什么不用执行,所以需要使用:
if __name__ == '__main__':
来把非函数的部分放进来,让程序能够判断出来