以前我们都是成批量数据去训练的,但是面对大批量数据的时候,往往会影响速度,所以这里使用批数据训练,提高效率
import torch
import torch.utils.data as Data
from torch.autograd import Variable
#每一批的数据量
BATH_SIZE = 4
x = torch.linspace(1, 20, 20)
y = torch.linspace(20, 1, 20)
#x, y =Variable(x), Variable(y)
torch_dataset = Data.TensorDataset(x, y)
#loader可以使我们的数据是一小批的
loader = Data.DataLoader(
dataset=torch_dataset,
batch_size=BATH_SIZE,
shuffle=True,#训练的时候打乱数据
num_workers=2,#提取loader的时候,使用2个线程or进程
)
#这里的意思是将整批数据训练三次,每一次的时候,又拆分成5批(BATH_SIZE=4),分批训练
if __name__ == '__main__':
for times in range(3):
for step, (bath_x, bath_y) in enumerate(loader):
#training.....
bath_x, bath_y = Variable(bath_x), Variable(bath_y)
print('times', times, "|step:", step,