DeepLearning 01 | Tensor

今天学了Tensor的定义,做了以下的记录:

a = t.Tensor(1, 2, 3) # 这里1代表的batch,2代表行维度,3代表列维度
a.shape    # output:torch.Size([1, 2, 3])
t.ones(2, 3)  #创建一个2*3的tensor,所有value都是1
output: 
tensor([[1., 1., 1.],
        [1., 1., 1.]])

t.zeros(2, 3)  #创建一个2*3的tensor,所有value都是0
output:
tensor([[0., 0., 0.],
        [0., 0., 0.]])

t.arange(1, 6, 2)  #1:哪里开始,6:哪里结束,2:两个数之前相差多少
output:
tensor([1, 3, 5])

t.linspace(1, 10, 3)  #间隔起始点、终止端,以及指定分隔值总数(包括起始点和终止点);将1-10平均分成三个数字,1和10已经占了两个了,中间还需要一个
output:
tensor([ 1.0000,  5.5000, 10.0000])

t.randn(2, 3, device=t.device('cpu'))  #后面的表示,想用什么device进行存储数据,默认是CPU
output:
tensor([[-0.5485, -0.8044,  1.7384],
        [-0.4052, -0.0030,  0.7025]])

t.randperm(5)  #它的作用是返回一个大小为5的一维张量,其中包含从1到5的整数,但是这些整数的顺序是随机排列的,每个数只出现一次。
output:
tensor([4, 3, 2, 0, 1])

t.eye(2, 3, dtype=t.int) # 创建一个大小为2*3的二维张量,其中对角线上的元素都是1,其他元素都是0,并且不用行和列的大小相等
output:
tensor([[1, 0, 0],
        [0, 1, 0]], dtype=torch.int32)

scalar = t.tensor(3.14159)  # 表示一个标量(只有一个值的张量),所以size为空
print('scalar: %s, shape of sclar: %s' %(scalar, scalar.shape))  # %s是Python字符串格式化的一种方式,它可以将后面括号中的值以字符串的形式插入到前面的字符串中,其中%s会被替换成后面括号中的值。
output:
scalar: tensor(3.1416), shape of sclar: torch.Size([])

vector = t.tensor([1, 2])
tensor = t.Tensor(1,2)
区别:
vector = t.tensor([1, 2])创建一个形状为(2,)的一维张量,其值为[1, 2]。这个张量的数据类型将根据输入的值自动推断,通常为整数类型。
tensor = t.Tensor(1, 2)创建一个形状为(1, 2)的二维张量,其中的元素值是未初始化的,也就是说其值未知。该函数使用默认数据类型float32。

matrix = t.tensor([[0.1, 1.2], [2.2, 3.1], [4.9, 5.2]])
# 一个二维张量的形状为(rows, cols),表示这是一个包含rows行和cols列的矩阵。
# 一个三维张量的形状为(depth, rows, cols),表示这是一个包含depth个矩阵,每个矩阵包含rows行和cols列。

x[[1, 2], [1, 2], [2, 0]] # x[1,1,2] and x[2,2,0]
x[[2, 1, 0], [0], [1]] # x[2,0,1],x[1,0,1],x[0,0,1]
x[[0, 2], ...] # x[0] and x[2]

a[0,0] # 也是tensor
a[0,0].item()# 表示获取张量a中第一行第一列的元素,并将其转换为Python标量类型
d = a[0:1, 0:1, None] #取第一维的第一行,第二维的第一行,再增加一个维度,如果a是3维,最后输出四维的d,如果a是4维的,最后输出五维的d

b.unsqueeze(1) # 用于在指定位置插入新的维度。具体来说,它将会在张量 b 的第二个维度(即位置1)插入一个新的维度,从而增加张量的秩(即维度数)。
b.unsqueeze(-2) # 它在 b 的倒数第二个维度上插入了一个新的维度








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值