【Pytorch】Pytorch基本操作

基本操作

创建矩阵

import torch
#创建一个5*3矩阵
x=torch.empty(5,3)
print(x)
#创建一个随机值矩阵
x=torch.rand(5,3)
print(x)
#初始化一个全零矩阵
x=torch.zeros(5,3,dtype=torch.long)
print(x)
#直接传入数据
x=torch.tensor([5.5,3])
print(x)
x=x.new_ones(5,3,dtype=torch.double)
print(x)
x=torch.randn_like(x,dtype=torch.float)
print(x)
#获取矩阵大小
print(x.size())

基本计算方法

加法

import torch
#基本计算方法
x=torch.ones(5,3)
y=torch.rand(5,3)
print(x)
print(y)
#实现加法方式1
print(x+y)
#实现加法方式2
print(torch.add(x,y))

索引

import torch
#基本计算方法
x=torch.ones(5,3)
print(x[:,1])

view改变矩阵维度

#view操作可以改变矩阵维度
x=torch.randn(4,4)  #创建一个4*4的矩阵
print(x)
y=x.view(16)
print(y)
z=x.view(-1,8)
print(z)
print(x.size(),y.size(),z.size())#torch.Size([4, 4]) torch.Size([16]) torch.Size([2, 8])

tensor和numpy的相互转换

import torch
#与Numpy的协同操作
#torch底层数据格式是tensor
#numpy底层数据格式是ndarray
a=torch.ones(5)
print(a)
b=a.numpy() #tensor转换成numpy支持的格式(ndarray)
print(b,type(b))

import numpy as np
a=np.ones(5)#a是ndarray的格式
b=torch.from_numpy(a)#将ndarray格式转换成tensor格式
print(b)

反向传播

import torch
#反向传播
#方法1
x=torch.randn(3,4,requires_grad=True)
print(x)
#方法2
x=torch.randn(3,4)
x.requires_grad=True
print(x)

b=torch.randn(3,4,requires_grad=True)
t=x+b
print(t)
y=t.sum()
z=y+b
print(y)
y.backward()
z.backward(retain_graph=True)#如果不清空(retain_graph=True)会累加起来
print(b.grad)
print(t)
print(x.is_leaf,y.is_leaf,b.is_leaf,z.is_leaf)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值