最近在都 Deep Learning with Pytorch 这本书,目前为止感觉还是不错。尤其是它里面的手绘风插图,真的是印象深刻,好感顿生。

第三章介绍了 tensor 的数据结构,感觉讲的挺好的,做一个笔记,加深下印象。

通过 dtype 参数可以指定 tensor 的数据类型。其名字和 numpy 里面的类型几乎一致:

每一个 tensor 的真是数据是由 torch.Storage 来维护的,它本质上就是一段连续的内存空间而已。对于不同的 tensor 虽然它的 shape 不一样,但也可能指向了同一个的 storage。通过 tensor.storage() 可以直接访问它的内容:

不论 tensor 本身维度如何,其下的 storage 永远是一个一维数组。当然,修改 storage 的数据后,其 tensor 的数据也一定会发生变化。

tensor 创建时可以指定其属于什么设备:

只要都在主内存里,numpy array 和 tensor 之间的转换是非常高效的。那么这个好处就是可以享受 numpy 生态的各种类库。