pytorch初步学习(二)
1~5见上篇 pytorch初步学习(一)
- 6:4维张量
4维张量类型,最常见例子就是批图像。而在现代的CPU和GPU上都对快速在多样例上执行相同操作而进行了专门的优化,所以我们对于处理一张或多张图像时所用时间的差别感受并不明显。也因此,使用一批样例比使用单样例更加常见。
批大小选择取决于许多因素,可以不去考虑。而不取更大批尺寸或完整数据集的主要原因是GPU的内存限制。我们最常用的批尺寸是16,32,64。
其实举例来说,加载一批图片,假设为64*220*220*3的图片,其中64表示的就是批尺寸,通俗的来说,就是数量,当然,220,220分别表示长和宽,3为通道数,与颜色相关。 - 7: 5维张量
在四维张量的基础上,我们了解5维张量,与上边4维张量类似,5维张量可以用视频数据为例。视频可以划分为帧,比如某个视频包含30帧,时长5秒,就可以表示形状为(n*30*224*224*3)的张量,其中 n 表示视频个数,30表示每个视频包含的帧数。 - 8:GPU上的张量
了解这些张量,以及其表示的数据类型之后,我们需要了解的就是对这些张量格式的数据进行一些常见运算,比如加,减,乘,点积以及矩阵乘法等。当然,这些操作既可以在CPU上进行,也可以在GPU上进行。在Pytorch中提供了cuda()函数,将张量从CPU上复制到GPU上。对比两个时间有:
a = torch.rand(10000,10000)
b = torch.rand(10000,10000)
a.matmul(b)
#耗时 : 3.23 s
#转移到 GPU上
a = a.cuda()
b = b.cuda()
a.matmul(b)
#耗时 : 11.2 µs
可见在进行某些运算时,GPU有着极大的优势,相较于CPU而言。
-
9 变量
变量可用于指明在网络中某些变量时如何创建的,如何变化的,如何计算的。变量被用户创建后在引用时予以调用,从而获得想要的数据。 -
总结
将数据准备介绍完,我们就要开始真正的为网络创建数据,以及开始跑网络达到某些目的了,我会在之后的学习中将步骤以及自己的感悟记录下来,希望可以有所帮助(对比我还要萌新的萌新来说)。