3131
3232假设一个mini-batch中有3个句子,每个句子中分别包含3个、1个和2个单词。我们可以用(3+1+2)xD维Tensor 加上一些索引信息来表示这个mini-batch:
3333
34- .. code-block :: python
34+ .. code-block :: text
3535
3636 3 1 2
3737 | | | | | |
4242
4343让我们来看另一个2-level LoD-Tensor的例子:假设存在一个mini-batch中包含3个句子、1个句子和2个句子的文章,每个句子都由不同数量的单词组成,则这个mini-batch的样式可以看作:
4444
45- .. code-block :: python
45+ .. code-block :: text
4646
4747 3 1 2
4848 3 2 4 1 2 3
5151
5252 表示的LoD信息为:
5353
54- .. code-block :: python
54+ .. code-block :: text
5555
5656 [[3,1,2]/*level=0*/,[3,2,4,1,2,3]/*level=1*/]
5757
6060
6161在视觉任务中,时常需要处理视频和图像这些元素是高维的对象,假设现存的一个nimi-batch包含3个视频,分别有3个,1个和2个帧,每个帧都具有相同大小:640x480,则这个mini-batch可以被表示为:
6262
63- .. code-block :: python
63+ .. code-block :: text
6464
6565 3 1 2
6666 口口口 口 口口
@@ -72,14 +72,14 @@ LoD 索引
7272
7373在传统的情况下,比如有N个固定大小的图像的mini-batch,LoD-Tensor表示为:
7474
75- .. code-block :: python
75+ .. code-block :: text
7676
7777 1 1 1 1 1
7878 口口口口 ... 口
7979
8080 在这种情况下,我们不会因为索引值都为1而忽略信息,仅仅把LoD-Tensor看作是一个普通的张量:
8181
82- .. code-block :: python
82+ .. code-block :: text
8383
8484 口口口口 ... 口
8585
@@ -94,13 +94,13 @@ LoDTensor的偏移表示
9494
9595在上述例子中,您可以计算基本元素的长度:
9696
97- .. code-block :: python
97+ .. code-block :: text
9898
9999 3 2 4 1 2 3
100100
101101 将其转换为偏移表示:
102102
103- .. code-block :: python
103+ .. code-block :: text
104104
105105 0 3 5 9 10 12 15
106106 = = = = = =
@@ -110,21 +110,21 @@ LoDTensor的偏移表示
110110
111111类似的,LoD的顶层长度
112112
113- .. code-block :: python
113+ .. code-block :: text
114114
115115 3 1 2
116116
117117 可以被转化成偏移形式:
118118
119- .. code-block :: python
119+ .. code-block :: text
120120
121121 0 3 4 6
122122 = = =
123123 3 3+1 4+2
124124
125125 因此该LoD-Tensor的偏移表示为:
126126
127- .. code-block :: python
127+ .. code-block :: text
128128
129129 0 3 4 6
130130 3 5 9 10 12 15
@@ -138,7 +138,7 @@ LoD-Tensor
138138
139139以上文提到的一个2-level LoD-Tensor为例:
140140
141- .. code-block :: python
141+ .. code-block :: text
142142
143143 3 1 2
144144 3 2 4 1 2 3
@@ -147,11 +147,11 @@ LoD-Tensor
147147 - 以偏移量表示此 LoD-Tensor:[ [0,3,4,6] , [0,3,5,9,10,12,15] ],
148148- 以原始长度表达此 Lod-Tensor:recursive_sequence_lengths=[ [3-0 , 4-3 , 6-4] , [3-0 , 5-3 , 9-5 , 10-9 , 12-10 , 15-12] ]。
149149
150- 以文字序列为例: [3,1,2] 可以表示这个mini-batch中有3篇文章,每篇文章分别有3、2、1个句子 ,[3,2,4,1,2,3] 表示每个句子中分别含有3、2、4、1、2、3个字。
150+ 以文字序列为例: [3,1,2] 可以表示这个mini-batch中有3篇文章,每篇文章分别有3、1、2个句子 ,[3,2,4,1,2,3] 表示每个句子中分别含有3、2、4、1、2、3个字。
151151
152152recursive_seq_lens 是一个双层嵌套列表,也就是列表的列表,最外层列表的size表示嵌套的层数,也就是lod-level的大小;内部的每个列表,对应表示每个lod-level下,每个元素的大小。
153153
154- .. code-block :: python
154+ .. code-block :: text
155155
156156 #查看lod-tensor嵌套层数
157157 print len(recursive_seq_lengths)
0 commit comments