一文读懂pytorch基础语法

白癜风症状 http://baidianfeng.39.net/a_xcyy/140321/4358301.html

一.定义张量tensor  张量

一种数据类型,可以是一到多维矩阵,在机器学习中作为主要输入输出数据类型使用

1.自定义数值的张量torch.tensor([[2.1,12.2,2.],[2.1,12.2,2.]],dtype=float)

2.张量ndim,shape,size属性,ndim表示张量的维度,shape=size表示张量的形状

3.定义全1张量test2=torch.ones(8,8)

4.定义全零张量test3=torch.zeros(2,9)

5.定义随机张量test4=torch.rand(1,20)

6.定义随机整型张量test5=torch.randint(0,10,(2,3))

7.定义正态分布张量test6=torch.randn(1,9)

二.张量的基本运算

1.改变张量(矩阵)的维度,修改前后矩阵元素总数不变test6=test6.view(3,3)  

2.获取tensor第n个元素

test6[1][1]:获取二维矩阵第1行第一列元素

test6[1]若是一维矩阵则使用获取第一个元素,  

test[1:10]获取从索引1到10的所有元素

test[:10]获取10以前的所有数据

test[10:]获取索引10以后的所有数据  tensor_b[[1,2],[1,1]]根据索引获取数据  3.test6[1].item()获取指定索引元素的值

4.pytorch张量和numpy数组之前的转化  

numarr=numpy.array(test6)

tensor转化为numpy数组  tensor=torch.tensor(nparr)numpy数组转化为tensor张量

5.基本运算

加法运算:tensor_c=tensor_a+tensor_b,将矩阵对应元素分别相加,  加法运算的另外两种不常用写法  res=torch.zeros(3,3,dtype=int)  torch.add(tensor_a,tensor_b,out=res)计算结果存储在res变量中  tensor_c=torch.add(tensor_a,tensor_b)  

减法运算:tensor_c=tensor_a+tensor_b,将矩阵对应元素分别相减  

除法运算:tensor_c=tensor_a/tensor_b,将矩阵对应元素分别相除

取余运算:tensor_c=tensor_a%tensor_b,对应元素相除取余数

乘法运算:tensor_c=tensor_a*tensor_b,非矩阵乘法,对应元素相乘  

矩阵相乘:使用matmul函数tensor_c=torch.matmul(tensor_a,tensor_b)  

对矩阵求和:tensor=torch.sum(tensor_c)所有元素相加

求最大值最小值等:tensor=torch.max/min(tensor_c)

求最大值最小值所在的索引index=torch.argmax(tensor_c)arg+max/min

求均值:tensor=torch.mean(tensor_b)tensor_b必须为float类型  获得矩阵中位数:tensor=torch.median(tensor_b)  开方:tensor=torch.sqrt(tensor_b)

幂运算:tensor=torch**3

三.自动求导

x=torch.tensor([6,3],dtype=float,requires_grad=True)#用于说明当前量是否需要在计算中保留对应的梯度信息

y=x**3+1

y.backward(torch.ones_like(x))#若输出是标量则y.backward()

x.grad  注:y=x+1求导:根据求导公式得出yd=x`+1`=yd=3x

文章来源:


转载请注明:http://www.aierlanlan.com/grrz/2941.html