`split`和`chunk`是用于拆分张量的类似操作。 `split`接受每个输出张量要的大小。 例如,如果要在第 0 个维度上拆分大小为`3 x 2`的张量,尺寸为 1,则将得到三个大小均为`3 x 2`的张量。但是,如果在第 0 个维度上使用 2 作为大小,则将 会得到`3 x 2`的张量和另一个`3 x 2`的张量。
您可以使用大小为 100 的单热点编码向量为张量添加另一个维度(因为词汇量为 100 个单词)。 现在,您有了一个尺寸为`10 x 5 x 100`的张量对象,并且每个批量和每个句子一次传递一个单词。
现在,您必须对句子进行拆分和切分,最有可能的结果是,张量的大小为 10 x 1 x 100(每 10 个单词中的一个单词带有 100 维向量)。 您可以使用`10 x 100`的张量处理它,这使您的生活更加轻松。 继续使用`squeeze`从`10 x 1 x 100`张量得到`10 x 100`张量。
现在,您必须对句子进行拆分和切分,最有可能的结果是,张量的大小为`10 x 1 x 100`(每 10 个单词中的一个单词带有 100 维向量)。 您可以使用`10 x 100`的张量处理它,这使您的生活更加轻松。 继续使用`squeeze`从`10 x 1 x 100`张量得到`10 x 100`张量。
C / C++ 后端中设计的自定义数据结构已分为不同的层。 为简单起见,我们将省略 CUDA 数据结构,而将重点放在简单的 CPU 数据结构上。 PyTorch 中的面向用户的主要数据结构是`THTensor`对象,它保存有关尺寸,偏移,步幅等信息。 但是,`THTensor`存储的另一个主要信息是指向`THStorage`对象的指针,该对象是为存储而保存的张量对象的内部层。
C/C++ 后端中设计的自定义数据结构已分为不同的层。 为简单起见,我们将省略 CUDA 数据结构,而将重点放在简单的 CPU 数据结构上。 PyTorch 中的面向用户的主要数据结构是`THTensor`对象,它保存有关尺寸,偏移,步幅等信息。 但是,`THTensor`存储的另一个主要信息是指向`THStorage`对象的指针,该对象是为存储而保存的张量对象的内部层。