迭代器 Iterater
python要查看迭代器离得部分内容时,主要的有以下3种方法:(以查看第一个元素为例)
1.for循环
1 | dev_iter = build_iterator(dev_data, config) |
结果:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18((tensor([[ 101, 1036, 4997, ..., 0, 0, 0],
[ 101, 1036, 4997, ..., 0, 0, 0],
[ 101, 1036, 4997, ..., 4851, 4289, 0],
...,
[ 101, 4495, 3189, ..., 831, 1044, 1355],
[ 101, 4495, 3189, ..., 7317, 7164, 7509],
[ 101, 7922, 6235, ..., 6804, 1931, 0]], device='cuda:0'), tensor([25, 29, 31, 32, 32, 32, 32, 32, 32, 29, 32, 32, 29, 20, 32, 29, 32, 32,
30, 31, 31, 32, 31, 29, 32, 32, 32, 32, 28, 30, 30, 32, 32, 31, 27, 32,
31, 30, 31, 32, 30, 32, 29, 30, 31, 32, 27, 25, 29, 32, 32, 32, 31, 30,
30, 31, 31, 22, 32, 31, 29, 32, 32, 31], device='cuda:0'), tensor([[1, 1, 1, ..., 0, 0, 0],
[1, 1, 1, ..., 0, 0, 0],
[1, 1, 1, ..., 1, 1, 0],
...,
[1, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 0]], device='cuda:0')), tensor([8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3,
3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 7,
7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6], device='cuda:0'))
2.生成式/生成器
1 | dev_iter = build_iterator(dev_data, config) |
结果:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21((tensor([[ 101, 1036, 4997, ..., 0, 0, 0],
[ 101, 1036, 4997, ..., 0, 0, 0],
[ 101, 1036, 4997, ..., 4851, 4289, 0],
...,
[ 101, 4495, 3189, ..., 831, 1044, 1355],
[ 101, 4495, 3189, ..., 7317, 7164, 7509],
[ 101, 7922, 6235, ..., 6804, 1931, 0]], device='cuda:0'),
tensor([25, 29, 31, 32, 32, 32, 32, 32, 32, 29, 32, 32, 29, 20, 32, 29, 32, 32,
30, 31, 31, 32, 31, 29, 32, 32, 32, 32, 28, 30, 30, 32, 32, 31, 27, 32,
31, 30, 31, 32, 30, 32, 29, 30, 31, 32, 27, 25, 29, 32, 32, 32, 31, 30,
30, 31, 31, 22, 32, 31, 29, 32, 32, 31], device='cuda:0'),
tensor([[1, 1, 1, ..., 0, 0, 0],
[1, 1, 1, ..., 0, 0, 0],
[1, 1, 1, ..., 1, 1, 0],
...,
[1, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 0]], device='cuda:0')),
tensor([8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3,
3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 7,
7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6], device='cuda:0'))
3.next()函数
1 | dev_iter = build_iterator(dev_data, config) |
结果:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21((tensor([[ 101, 1036, 4997, ..., 0, 0, 0],
[ 101, 1036, 4997, ..., 0, 0, 0],
[ 101, 1036, 4997, ..., 4851, 4289, 0],
...,
[ 101, 4495, 3189, ..., 831, 1044, 1355],
[ 101, 4495, 3189, ..., 7317, 7164, 7509],
[ 101, 7922, 6235, ..., 6804, 1931, 0]], device='cuda:0'),
tensor([25, 29, 31, 32, 32, 32, 32, 32, 32, 29, 32, 32, 29, 20, 32, 29, 32, 32,
30, 31, 31, 32, 31, 29, 32, 32, 32, 32, 28, 30, 30, 32, 32, 31, 27, 32,
31, 30, 31, 32, 30, 32, 29, 30, 31, 32, 27, 25, 29, 32, 32, 32, 31, 30,
30, 31, 31, 22, 32, 31, 29, 32, 32, 31], device='cuda:0'),
tensor([[1, 1, 1, ..., 0, 0, 0],
[1, 1, 1, ..., 0, 0, 0],
[1, 1, 1, ..., 1, 1, 0],
...,
[1, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 1],
[1, 1, 1, ..., 1, 1, 0]], device='cuda:0')),
tensor([8, 8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 3, 3, 3,
3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 7, 7, 7,
7, 7, 7, 7, 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6], device='cuda:0'))