深度学习:向量与矩阵篇(1)

写在前面:学习深度学习的基本知识:向量与矩阵。

1 1维张量:向量

1.1 快速生成向量的方法

  • linspace函数,(起点float, 终点float, 分成几份int)
>>>c01 = t.linspace(1.0, 10.0, 4)
>>>c01
tensor([ 1.,  4.,  7., 10.])
  • arrange函数(对应的是Tensorflow中的range函数)
>>>b5 = t.arange(1, 5)
>>>b5
tensor([1, 2, 3, 4])
  • logspace函数(起始值,结束值,生成几个值)
    需要注意的是,这里的起始值和结束值都是以10次方来计算的。
    比如说:
>>>a6 = t.logspace(0, 2, 4)
>>>a6
tensor([  1.0000,   4.6416,  21.5443, 100.0000])

2 2维张量:矩阵

2.1 生成全零矩阵:zeros

  • 对于Tensorflow和PyTorch来说,都使用的是zeros函数
    但是,TensorFlow需要的是一个列表,而PyTorch直接给出参数就可以
import tensorflow as tf
b1 = tf.zeros([5,5])  
# 生成一个五行五列全零的矩阵


import torch as t
b2 = t.zeros(5, 5)
# 生成一个五行五列全零的矩阵

2.2 生成全1的矩阵:ones

类似于zeros

2.3 根据其他矩阵的行列值,生成新的全零全1 的矩阵 ones_like zeros_like

# 假设a1 是一个三行三列的全0的矩阵
a2 = ones_like(a1)
# 表示生成一个和a1类型一样(三行散列)全1 的矩阵

2.4 生成对角线1 的单位矩阵:eye函数

a = t.eye(5)
# 表示生成一个5行5列的单位矩阵

2.5 矩阵的转置,tensorflow用的是transpose

  • pytorch用的是t
import torch as t
a = t.ones(3, 6)
a
tensor([[1., 1., 1., 1., 1., 1.],
        [1., 1., 1., 1., 1., 1.],
        [1., 1., 1., 1., 1., 1.]])
b = t.t(a)
b
tensor([[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]])

2.6 改变张量的形状:view

  • 比如说,将一个向量(100d)转换为一个10*10 的矩阵
b1 = t.arange(0, 100)
b1
tensor([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17,
        18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
        36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
        54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
        72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
        90, 91, 92, 93, 94, 95, 96, 97, 98, 99])
b2 = b1.view(10, 10)
b2
tensor([[ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9],
        [10, 11, 12, 13, 14, 15, 16, 17, 18, 19],
        [20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
        [30, 31, 32, 33, 34, 35, 36, 37, 38, 39],
        [40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
        [50, 51, 52, 53, 54, 55, 56, 57, 58, 59],
        [60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
        [70, 71, 72, 73, 74, 75, 76, 77, 78, 79],
        [80, 81, 82, 83, 84, 85, 86, 87, 88, 89],
        [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值