P3 创建Tensor

     前言:

             这里面主要讲解一下创建一个Tensor 对象的不同方法

    目录:

  1.           numpy 创建
  2.           list 创建
  3.           empty 创建
  4.           set_default_type
  5.           随机数创建
  6.          torch.full
  7.         arange&linespace
  8.          ones|zeros|eye
  9.         randperm

            


一  numpy 创建

    a = np.array([2, 4.4])
    ta =  torch.from_numpy(a)


    a = np.ones([2, 3])
    ta = torch.from_numpy(a)
    trace(ta)


二  list 创建

   其中tensor 有大写和小写之分

   最好用小写的:

    小写Tensor 输入参数:  Numpy ,list 等数据

    大写Tensor: 输入参数:  shape,  也可以是list

  

#通过list     
def by_list():
    
    a = torch.tensor([2,3.2])
    a = torch.FloatTensor([2,3.2])
    a = torch.FloatTensor(2,3)
    trace(a)

   


三  empty 创建

    

 a = torch.empty(1)
 a = torch.FloatTensor(2,2)
 a = torch.IntTensor(2,2)

四 set_default_type

     torch.set_default_tensor_type(torch.DoubleTensor)

五   随机数创建

       5.1   a = torch.rand(3,3)

            创建一个dimension=2 ,[3,3]的矩阵

      

     5.2  b =  torch.rand_like(a)

             读a 的 shape,生成一个随机矩阵shape 跟它一致

    5.3  c = torch.randint(low=1, high=3, size=[3,3])

           生成一个int 型的[3,3] 随机数组

    5.4  d = torch.randn(3,3)

                生成一个正太分布的[3,3] 矩阵

                N(0,1)

    5.5  e = torch.normal(mean= torch.full([10],0.0), std=torch.arange(start=1, end=0, step=-0.1))

               生成一个均值为0, 方差从1到0.1的,dimension =1, size=10的随机数组


六  torch.full


    a = torch.full([2,3],7)
    b = torch.full([],7)
    c = torch.full([1],7)

             


七   arange&linespace

    7.1 a = torch.arange(start=0, end=12, step=3)

          从0 开始取,下一个值为前一个值+step

P3 创建Tensor_第1张图片    

   7.2  torch.linspace(start=0,end=12,steps=3)

      这个张量包含了从start到end(包括端点)的等距的steps个数据点。

      如上 总距离d= end-star =12

             steps =3  ,有3个点,则总共有2段

             则间隔为interval = 12/2 =6 

P3 创建Tensor_第2张图片

 7.3  c = torch.logspace(start=0, end=-1,steps =10)

        先对区间0,-1 划分10个等分:为a

        然后取值10^a


八  ones|zeros|eye

       one = torch.ones(3,3) 

        全1的3*3 矩阵
    zero = torch.zeros(3,3)

        全0的3*3矩阵
     eye = torch.eye(3,3) 

      3*3 对角矩阵


九  randperm

      a = torch.rand((10,2))
    #将0~n-1(包括0和n-1)随机打乱后获得的数字序列,函数名是random permutation缩写
     idx = torch.randperm(10)
     b = a[idx[0:2]]

P3 创建Tensor_第3张图片

 

你可能感兴趣的:(人工智能,numpy,python,深度学习)