deep learning with pytorch 笔记 deep learning with python 2nd_深度学习

为了让它更具体一些,让我们回去看看MNIST例子的过程。首先,我们下载了MNIST的数据包;

(略)

下一步,我们展示了张量train_images的轴的数量,ndim属性:

(略)

这是它的shape:

(略)

并且这是它的数据类型,dtype属性:

(略)

deep learning with pytorch 笔记 deep learning with python 2nd_3D_02

所以我们有了一个8位int的3D张量。更准确的说,这是一个每个包含了28*8个整数的60000个矩阵。每个矩阵是一个有着0到255之间系数的灰度图片。

让我们使用Matplotlib库(标准科学python套中的一部分)来展示四个3D张量的数字:于2.2可见。

deep learning with pytorch 笔记 deep learning with python 2nd_3D_03

(略)

deep learning with pytorch 笔记 deep learning with python 2nd_3D_04

2.2.6 Nmupy中的多维张量

在先前的例子中,我们在第一个轴的旁边使用语句train_images[i]选择了一个特殊的数字。在张量中选择选择特殊元素叫做张量切片。让我们看看你在Numpy数组中所做的张量切片操作。

接下来的例子中选则了数字#10到#100(#100不在其中),并且将它们放在数组(90,28,28)的shape中。

deep learning with pytorch 笔记 deep learning with python 2nd_3D_05

这相当于这个更详细的说法:它给沿着每个张量轴的切片指定了一个起点索引和一个终点索引。注意:是相当于选择整个轴

(略)

deep learning with pytorch 笔记 deep learning with python 2nd_数组_06

一般而言,你可能在沿着每个张量轴在任意两个索引之间进行选择。例如,为了选择所有图像右下角像素14*14的区域,你这样做:

(略)

它也可能使用负指数。更像是Python list中的负指数,它们指示的位置于当前轴的末尾有关系。为了裁剪中间居中14*14像素补丁,你需要这样做:

(略)

deep learning with pytorch 笔记 deep learning with python 2nd_3D_07

2.2.7 数据组的注释

一般而言,在所有数据张量中,你会在深度学习遇到的第一个轴(轴0,因为索引开始于0)是图像轴(有时叫做图像维度)。在MNIST的例子中,图片是数字的图像。

此外,深度学习没有执行一个完全数据组;它们宁愿数据分到更小的部分。具体来说,这里是一组被批处理为128尺寸的MNIST数字。

(略)