网站建设工程师面试,h5商城和小程序商城的区别,做网站head.htm,做房产的一般用哪个网站张量的索引
如果A是一个矩阵#xff0c;在matlab中我们取出来A矩阵的第m行n列的元素#xff0c;可以用A(m,n)。取出来第i行的元素可以用A(i,:)#xff0c;取出来第i列的元素#xff0c;可以用A(:,i)。而对于pytorch中的张量#xff0c;它的索引略有不同#xff1a;
impor…张量的索引如果A是一个矩阵在matlab中我们取出来A矩阵的第m行n列的元素可以用A(m,n)。取出来第i行的元素可以用A(i,:)取出来第i列的元素可以用A(:,i)。而对于pytorch中的张量它的索引略有不同import torch tensor torch.tensor([[1,2,3],[4,5,6]],dtype torch.float32) print(原始张量:\n,tensor) #1. ** 索引和切片操作** print(获取第一行,tensor[0]) print(获取第一行第一列的元素,tensor[0,0]) print(获取第二列的所有元素,tensor[:,1]) print(获取第一行的另外一种方法,tensor[0,:]) #pytorch中tensor的索引是从0开始的打印出来的原始张量: tensor([[1., 2., 3.], [4., 5., 6.]]) 获取第一行 tensor([1., 2., 3.]) 获取第一行第一列的元素 tensor(1.) 获取第二列的所有元素 tensor([2., 5.]) 获取第一行的另外一种方法 tensor([1., 2., 3.])可以发现pytorch中的张量的索引默认是从0开始的例如我们取矩阵的第1行就是tensor.[0,:]当然也可以不写冒号那就是tensor[0]。其次我们可以发现pytorch中对张量索引的格式是tensor[]采用的是方括号而不是matlab中的圆括号。print(张量的最大值:,tensor.max()) print(张量的最大值:,torch.max(tensor)) print(张量的最小值:,tensor.min()) print(张量的均值:,tensor.mean()) maxId torch.argmax(tensor) print(张量的最大值的索引,maxId) minId torch.argmin(tensor) print(张量的最小值索引,minId) max_indices torch.where(tensor tensor.max()) print(f最大值位置 (行, 列): {max_indices})张量形状变换#2. ** 形状变换操作 ** print(\n [形状变换]) reshaped tensor.view(3,2) # 改变张量形状为3X2即3行两列 print(改变形状后的张量\n,reshaped) flattenedTensor tensor.flatten() # 将张量展平成一维 print(展平后的张量\n,flattenedTensor)tensor.view(M,N)可以将张量变为M行N列。注意张量形状改变前后的总元素数量必须一样否则会报错例如原来的张量是2X3那么可以改变为3X2但是不能变为3X4例如以下程序print(\n [形状变换]) reshaped tensor.view(3,4) # 改变张量形状 print(改变形状后的张量\n,reshaped)输出如下reshaped tensor.view(3,4) # 改变张量形状为3X2即3行两列 RuntimeError: shape [3, 4] is invalid for input of size 6张量的基本运算加减乘求和这些基本运算就是所有运算的基础操作起来没什么说的#3. ** 张量的数学运算 ** print(张量的数学运算\n) tensorAdd tensor 10; print(张量加10\n,tensorAdd) tensorMul tensor * 2 # 张量乘法 print(张量乘2\n,tensorMul) tensorDot tensor.sum() print(张量元素求和,tensorDot)pytorch的张量默认的保存格式都是float型例如上面我们原始的张量的输入是整数但最终打印出来的数都带着个小数点这就在提示我们它将数据作为浮点型进行了保存。矩阵的乘法#4. ** 与其他张量的操作 ** print(\n[与其他张量操作]) tensor2 torch.ones(3,2) print(另一个张量\n,tensor2) tensorDot torch.matmul(tensor,tensor2) print(张量的矩阵乘法\n,tensorDot)这个没什么好所的就是矩阵乘法罢了。条件判断# 5.** 条件判断和筛选 ** print(\n [条件判断和筛选]) mask tensor 3 # 判断一个布尔掩码 print(大于3的元素的布尔掩码\n, mask) filterTensor tensor[tensor 3] # 筛选出符合条件的元素 print(大于3的元素\n,filterTensor)