美文网首页
初识pytorch

初识pytorch

作者: 菜田的守望者w | 来源:发表于2019-07-08 21:55 被阅读0次

初始pytorch

定义tensor
  • torch.FloatTensor()
  • torch.Tensor()

上面两种方法一般给定一个维度直接生成随机数,也可以给定现成数据,不过现成数据一般使用下面的方法。

  • torch.tensor()
    torch一般使用数据类型为Double使用时需要定义torch.set_default_tensor_type(torch.DoubleTensor)
  • 生成从min到max的数使用randint(1,10)
  • torch.full([ ],7)生成7的标量
  • torch.full([1],7)生成一维的标量
变量的shape
  • a.dim直接表示几维的变量
  • a.size表示具体形状
  • a.shape表示其形状比如[2,3]二行三列
类似numpy的torch变量
  • torch.arange(0,10)
  • torch.linspace(0,10,steps=4)等分切成4份
  • torch.logspace(0,-1,stept=10) 从10的0此方到10的-1次方,生成10个数
  • torch.ones()
    torch.zeros()
    torch.eye()
    注意:eye只能接受一个或者两个参数,不能接受三个参数,就是只能适合于一个矩阵。
索引

a=torch.rand(4,3,28,28)
a[0].shape------->torch.size([3,28,28])
a[0,0].shape------->torch.size([28,28])
a[0,0,2,4]---------->tensor(0.8282)第一个图片第一个通道,二行四列的数据

切片
  • :all
  • :n-> n:<-
  • [start,end]

    取前两张图片啊a[1:3,:,:,:]或者a[1:3] QQ截图20190708132914.jpg
    QQ截图20190708132929.jpg
    QQ截图20190708143116.jpg
    QQ截图20190708144222.jpg
维度转换
  • view的使用
b=a.view(4,28*28)
print(b.shape)
     a=torch.tensor([1.2,2.3])
     c=a.unsqueeze(-1)
    f=torch.rand(4,32,14,14)
    b=b.unsqueeze(1).unsqueeze(2).unsqueeze(0)
    b.shape
    torch.Size([1,32,1,1])

相反squeeze方法作用是将某一维度合并,但这一维度必须为1

expand操作方法
b.shape
torch.Size([1,32,1,1])
b.expand(4,32,14,14).shape
torch.Size([4,32,14,14])
b.expand(-1,32,-1,-1).shape
torch.Size([1,32,1,1])
repeate重复次数
b.shape
torch.Size([1,32,1,1])
b.repeat(4,32,1,1).shape
torch.Size([4,1024,1,1])
b.repeat(4,1,1,1).shape
torch.Size([4,32,1,1])
b.repeat(4,1,32,32)
torch.Size([4,32,32,32])
转制操作.t

a=torch.randn(3,4)
a.t()
生成4X3的矩阵只能使用2D矩阵

transpose QQ截图20190708155442.jpg
  • 使用索引直接转置
    b=torch.rand(4,3,28,32)
    b.permute(0,2,3,1).shape
    torch.Size([4,28,32,3])
  • 将两个向量相加
    a=torch.rand(3,32,8)
    b=torch.rand(4,32,8)
    print(torch.cat([a,b],dim=).shape)
    (7,32,8)
  • 使用stack时两个张量必须维度相同
a=torch.tensor(3.14)
a.floor(),a.ceil(),a.trunc(),a.frac()
tensor(3.),tensor(4.),tensor(3.),tensor(0.1400)
四舍五入
a=torch.tensor(3.499)
a.round()
tensor(3.0)
a=torch.tensor(3.5)
a.round()
tensor(4.)
  • 数据操作
a=torch.arange(8).view(2,4).float()
tensor([[0,1,2,3],
           [4,5,6,7]])
a.min(),        a.max(),       a.mean(),       a.prod()
最小值:0,最大值:7,平均值:3.5,累乘0
a.sum()
累加28
a.argmax(),          a.argmin()
不指定dim的话转化为一维索引为7,0

相关文章

网友评论

      本文标题:初识pytorch

      本文链接:https://www.haomeiwen.com/subject/empohctx.html