pytorch基础学习(1)

        刚刚接触了Tensorflow,现在对pytorch也有很大的兴趣,说到底,这些机器学习库都是工具,技多不压身,2016年到现在也不到三年的库,发展这么快必然有它的道理,废话不多,开始学习吧。

torch

包torch包含了多维张量的数据结构以及基于其上的多种数学操作。另外,它也提供了多种工具,其中一些可以有效的对张量和任意类型进行序列化。

它有CUDA的对应实现,可以在NVIDIA GPU上进行张量计算(计算能力>2.0)。

张量Tensor

torch.is_tensor

torch.is_tensor(obj)

如果obj是一个pytorch张量,则返回True

  • 参数:obj(Object)-判断对像

torch.is_storage

torch.is_storage(obj)

 如何obj是一个pytorch storage对象,则返回True


torch.numel

torch.numel(input)

返回input张量中的元素个数

  • 参数:input(Tensor)-输入张量

例子:

a=torch.rand(1,2,3,4,5)
torch.numel(a)

120
a=torch.zeros(4,4)
torch.numel(a)

16

 创建操作Creation Ops

  torch.eye

torch.eye(n,m=None,out=None)

返回一个2维张量,对角线位置全1,其他位置全0

参数:

  • n(int)-行数
  • m(int,optional)-列数
  • out(Tensor,optinal)-Outout tensor

返回值:对角线位置全为1,其他位置全0的二维张量

例子:

torch.eye(3)
1 0 0 
0 1 0
0 0 1
[torch.FloatTensor of size 3*3]

 from_numpy

torch.from_numpy(ndarray)

 将numpy.ndarray转换为pytorch的Tensor。返回的张量tensor和numpy的ndarray共享同一内存空间。修改一个会导致另外一个也被修改。返回的张良不能改变大小。

例子:

a=numpy.array([1,2,3])
t=torch.from_numpy(a)
t
torch.LongTensor([1,2,3])
t[0]=-1
a
array([-1,2,3])

torch.linespace

torch.linespace(start,end,step=100,out=None)

返回一个1维张量,包含在区间start和end上均匀间隔的steps个点。输出1维张量的长度为step。

参数:

torch.linespace(3,10,step=5)
3.0000
4.7500
6.5000
8.2500
10.0000
[torch.FloatTensor of size 5]

torch.logspace

torch.logspace(start,end,step=100,out=None)

返回一个1维张量,包含在区间start,和end上对数刻度均匀间隔的steps个点,输出一维张量的长度为steps。

 

torch.ones

torch.ones(*sizes,out=None)

 返回一个全为1的张量,形状由可变参数sizes定义

  • 参数:size(int...)-整数序列,定义了输出形状
  • out(Tensor,optional)-结果张量

例子

torch.ones(2,3)
1,1,1
1,1,1

 torch.rand

torch.rand(*sizes,out=None)

返回一个张量,包含了从区间(0,1)的均匀分布中抽取的一组随机数,形状由可变参数sizes定义。

参数:

  • size(int...)-整数序列,定义了输出形状
  • out(Tensor,optinal)-结果张量
torch.rand(4)
0.9193
0.3347
0.3232
0.7715
[torch.FloatTensor of size 4]
torch.rand(2,3)
0.5010 0.5140 0.0719
0.1435 0.5636 0.0538
torch.FloatTensor of size 2*3

 torch.randn

torch.randn(*sizes,out=None)

返回一个张量,包含了从标砖正态分布(均值为0,方差为1)中抽取一组随机数,形状可有参数sizes定义

  • size(int...)-整数序列,定义了输出形状
  • out(Tensor,optinal)-结果张量

例子:

torch.randn(4)
-0.1145
0.0094
-1.1717
0.9846
[torch.FloatTensor of size 4]
torch.rand(2,3)
1.4339 0.3351,-1.0999
1.5458 -0.9643 -0.3558
[torch.FloatTensor of size 2*3]

 torch.randperm

torch.randperm(n,out=None)

给定参数n,返回一个从0到n-1的随机整数排列

参数:

  • n(int)-上边界(不包含)

例子:

torch.randperm
2
1
3
0
[torch.LongTensor of size 4]

 torch.arange

torch.arrange(start,end,step=1,out=None)

返回一个1维张量,长度维floor((end-start)/step).包含从start到end,以step为步长的一组序列只(默认步长为1)。

参数

  • start(float)-序列的起始点
  • end(float)-序列的终止点
  • step(float)-相邻点的间隔大小
  • out(Tensor,optional)-结果张量

例子:

torch.arrange(1,4)
1
2
3
[torch.FloatTensor of size 3]
torch.arrange(1,2.5,0.5)
1.0000
1.5000
2.0000
[torch.FloatTensor of size 3]

 torch.range

torch.range(start,end,step=1,out=None)

返回一个1维张量,有floor((end-start)/step)+1)个元素

例子:

torch.range(1, 4)
1 
2
3
4
[torch.FloatTensor of size 4]
torch.range(1, 4, 0.5)
1.0000
1.5000
2.0000
2.5000
3.0000
3.5000
4.0000
[torch.FloatTensor of size 7]

torch.zeros

torch.zeros(sizes,out=None)

返回一个全为标量0的张量,形状由可变参数sizes定义

  • 参数:size(int...)--整数序列,定义了输出形状
  • out(Tensor,optional)-结果张量

例子:

torch.zeros(2,3)
0 0 0
0 0 0
[torch.FloatTensor of size 2*3]
torch.zeros(5)
0
0
0
0
0
[torch.FloatTensor of size 5]

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值