为了让它更具体一些,让我们回去看看MNIST例子的过程。首先,我们下载了MNIST的数据包;
(略)
下一步,我们展示了张量train_images的轴的数量,ndim属性:
(略)
这是它的shape:
(略)
并且这是它的数据类型,dtype属性:
(略)
所以我们有了一个8位int的3D张量。更准确的说,这是一个每个包含了28*8个整数的60000个矩阵。每个矩阵是一个有着0到255之间系数的灰度图片。
让我们使用Matplotlib库(标准科学python套中的一部分)来展示四个3D张量的数字:于2.2可见。
(略)
2.2.6 Nmupy中的多维张量
在先前的例子中,我们在第一个轴的旁边使用语句train_images[i]选择了一个特殊的数字。在张量中选择选择特殊元素叫做张量切片。让我们看看你在Numpy数组中所做的张量切片操作。
接下来的例子中选则了数字#10到#100(#100不在其中),并且将它们放在数组(90,28,28)的shape中。
这相当于这个更详细的说法:它给沿着每个张量轴的切片指定了一个起点索引和一个终点索引。注意:是相当于选择整个轴
(略)
一般而言,你可能在沿着每个张量轴在任意两个索引之间进行选择。例如,为了选择所有图像右下角像素14*14的区域,你这样做:
(略)
它也可能使用负指数。更像是Python list中的负指数,它们指示的位置于当前轴的末尾有关系。为了裁剪中间居中14*14像素补丁,你需要这样做:
(略)
2.2.7 数据组的注释
一般而言,在所有数据张量中,你会在深度学习遇到的第一个轴(轴0,因为索引开始于0)是图像轴(有时叫做图像维度)。在MNIST的例子中,图片是数字的图像。
此外,深度学习没有执行一个完全数据组;它们宁愿数据分到更小的部分。具体来说,这里是一组被批处理为128尺寸的MNIST数字。
(略)