type check的方式,个人认为会用在数据集输入的时候检测类型、维度等信息
手动打入一个0维的数据。
获取维度、大小。 .shape是一个成员 .size是一个成员函数,因此要加括号
.tensor接受数据内容 .FloatTensor接受数据shape .Tensor接受数据shape
不同网络需要的输入数据维度不同 CNN一般4维 RNN一般3维
生成3行3列的矩阵,rand是生成0~1分布的随机数
常用语句arange、ones、zeros
解释上述三个输入的意义:a[0]:第一张图片 a[0,0]:第一张图片第一个通道 a[0,0,2,4]:第一张图片第1个通道的第二行第四列的元素。
a[:2]:索引至第2张图片,但不包含2 即图片0和图片1
a[:2,:1, : , :]:增加了对通道的索引,索引至1通道不包含1,即通道0
a[:2,1:, : , :]:从1通道索引到最末尾,即通道1和2
a[:2,-1:, : , :]:从-1通道,即2通道索引到最末尾,即2通道
a[: ,:, ::2, ::2]:双冒号和0:28: 2等价 因为0和28包含了该照片初始和末尾因此可以省略,留下步长2就可以
与matlab不同的是python从0开始索引,matlab从1开始。
a.index_select(0,torch.tensor([0,2])).shape 索引张量a的0维度 的第0个图片和第2个图片 得到:[2,3,28,28]
a.index_select(1,torch.tensor([1,2])).shape 索引张量a的1维度 的第1个通道和第2个通道 得到:[4,2,28,28]
a.index_select(2,torch.arange(8)).shape 索引行上面的0-7元素 得到:torch.Size([4,3,8,28])