1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
for epoch in range(3): for batch in train_dataloader: '''将批次中的所有数据移动到之前设定的设备上。这通常是通过.to(device)方法完成的,其中device是在代码其他部分中定义的''' print(batch) {'labels': tensor([2, 2, 0, 3, 3, 1, 2, 0]), 'input_ids': tensor([[ 101, 23158, 1204, ..., 0, 0, 0], [ 101, 1135, 112, ..., 0, 0, 0], [ 101, 146, 1328, ..., 0, 0, 0], ..., [ 101, 1753, 3869, ..., 0, 0, 0], [ 101, 26505, 1660, ..., 0, 0, 0], [ 101, 4081, 1159, ..., 0, 0, 0]]), 'token_type_ids': tensor([[0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], ..., [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0]]), 'attention_mask': tensor([[1, 1, 1, ..., 0, 0, 0], [1, 1, 1, ..., 0, 0, 0], [1, 1, 1, ..., 0, 0, 0], ..., [1, 1, 1, ..., 0, 0, 0], [1, 1, 1, ..., 0, 0, 0], [1, 1, 1, ..., 0, 0, 0]])} '''加上.to(device)没有测试过,但如果不加上这个东西说明实际上也没变化,因为本身dataloader在将batch循环的时候就是一个字典,这里的用处就是移到指定的计算单元位置去'''
|