模型训练-----数据处理
参考链接:https://blog.csdn.net/lqz790192593/article/details/89762081
https://www.cnblogs.com/qyh1499816254/p/11356887.html
在DataLoader 中,iter(dataloader) 返回的是一个 DataLoaderIter 对象, 这个才是我们一直 next的 对象。
#
# 这个DataLoaderIter其实就是DataLoader类的__iter__()方法的返回值:
DataLoader()的各个参数含义如下:
1. dataset:加载的数据集,这个从DataSet()函数而来。
2. batch_size:batch size,设定每次训练迭代时加载的数据量。
3. shuffle::是否将数据打乱
4. sampler: 样本抽样
5. num_workers:使用多进程加载的进程数,0代表不使用多进程,设定多进程可以使得加载数据时更加快速。
6. collate_fn: 如何将多个样本数据拼接成一个batch,一般使用默认的拼接方式即可
7. pin_memory:是否将数据(tensor)保存在pin memory区,pin memory中的数据转到GPU中会快一些
8. drop_last:dataset中的数据个数可能不是batch_size的整数倍,drop_last为True会将多出来不足一个batch的数据丢弃,False表示不丢弃。
from multiprocessing import Queue
multiprocessing.Queue()
Queue([maxsize])
创建共享的进程队列。maxsize是队列中允许的最大项数。如果省略此参数,则无大小限制。底层队列使用管道和锁定实现。另外,还需要运行支持线程以便队列中的数据传输到底层管道中。