当前位置: 首页 > news >正文

四川城乡建设网站首页比较出名的游戏外包公司

四川城乡建设网站首页,比较出名的游戏外包公司,网站建设心得体会800字,自己做网站一定要实名吗在PyTorch使用的过程中,维度转换一定少不了。而PyTorch中有多种维度形变的方法,我们该在什么场景下使用什么方法呢? 本小节我们使用的张量如下: # 一维向量 t1 torch.tensor((1, 2)) # 二维向量 t2 torch.tensor([[1, 2, 3], …

在这里插入图片描述

PyTorch使用的过程中,维度转换一定少不了。而PyTorch中有多种维度形变的方法,我们该在什么场景下使用什么方法呢?

本小节我们使用的张量如下:

# 一维向量
t1 = torch.tensor((1, 2))
# 二维向量
t2 = torch.tensor([[1, 2, 3], [4, 5, 6]])
# 三维向量
t3 = torch.tensor([[[1, 2], [3, 4]],[[5, 6], [7, 8]]])

1 张量的维度与形状

张量为一组数的结构化表示。简单理解,向量就是一维数组,矩阵为二维数组,此外我们还可以定义更高维度的数组。张量的高维数组和Numpy中高维Array概念类似。

1.1 ndim查看张量维度

print(t1.ndim, t2.ndim, t3.ndim, sep = ', ')
# 1, 2, 3
# t1为1维向量
# t2为2维矩阵
# t3为3维张量

1.2 shape&size()查看向量的形状

print(t1.shape, t2.shape, t3.shape, sep = ', ')
# torch.Size([2]), torch.Size([2, 3]), torch.Size([2, 2, 2])print(t1.size(), t2.size(), t3.size(), sep = ', ')
# torch.Size([2]), torch.Size([2, 3]), torch.Size([2, 2, 2])

t1向量torch.Size([2])的理解:向量的形状是1行2列。

t2矩阵torch.Size([2, 3])的理解:包含两个一维向量,每个一维向量的形状是1行3列。

t3矩阵torch.Size([2, 2, 2])的理解:包含两个二维矩阵,每个二维矩阵的形状是2行2列。

1.3 numel()查看张量中的元素个数

print(t1.numel(), t2.numel(), t3.numel(), sep = ', ')
# 2, 6, 8
# t1向量中共有2个元素
# t2矩阵中共有6个元素
# t3张量中共有8个元素

1.4 形状相同的数组可创建一个高维张量

import numpy as np
a1 = np.array([[1, 2], [3, 4]])
a2 = np.array([[5, 6], [7, 8]])
t3 = torch.tensor([a1, a2])
print(t3)
# tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])

2 张量的形变

2.1 flatten()将任意维度张量转为一维张量

t2.flatten()
# tensor([1, 2, 3, 4, 5, 6])t3.flatten()
# tensor([1, 2, 3, 4, 5, 6, 7, 8])

2.2 reshape()任意变形

形变维度的乘积需要等于张量元素的个数。

# 将`t3`变成2×4的矩阵
t3.reshape(2, 4)
#tensor([[1, 2, 3, 4],[5, 6, 7, 8]])# 将`t3`变成1×4×2的矩阵
t3.reshape(1, 4, 2)
# tensor([[[1, 2], [3, 4], [5, 6], [7, 8]]])

2.3 squeeze()&unsqueeze()

  • squeeze()的作用是压缩张量,去掉维数为1位置的维度
# 将t3的维度变为2×1×4
t_214 = t3.reshape(2, 1, 4)
print(t_214)
# tensor([[[1, 2, 3, 4]], [[5, 6, 7, 8]]])# 使用squeeze()将其变成2×4,去掉维度为1位置的维度
t_24 = t_214.squeeze(1)
print(t_24)
# tensor([[1, 2, 3, 4], [5, 6, 7, 8]])
  • unsqueeze()的作用是解压张量,给指定位置加上维数为一的维度。
# 将2×4的维度再转换成2×1×4,在第二个维度上加一维
# 索引是从0开始的。参数0代表第一维,参数1代表第二维,以此类推
print(t_24.unsqueeze(1))
tensor([[[1, 2, 3, 4]], [[5, 6, 7, 8]]])

2.4 维度变化总结

一般我们最常使用的就是flatten()reshape()。仔细思考的同学们肯定也可以发现,reshape()也可以实现flatten()的功能,reshape()所需的参数就是张量中的元素数。

print(t3.flatten())
# tensor([1, 2, 3, 4, 5, 6, 7, 8])print(t3.reshape(t3.numel()))
# tensor([1, 2, 3, 4, 5, 6, 7, 8])

3 特殊的零维张量

Tensor的零维张量只包含一个元素,可以理解为标量,只有大小,没有方向。

3.1 零维张量的属性

# 零维张量的创建只有一个数,不具备一维或多维的概念
t0 = torch.tensor(1)# 因为它是标量,所以维度是0
print(t0.ndim)
# 0# 因为它是标量,所以也不具有形状
print(t0.shape)
# torch.Size([])# 它没有维度,但是有一个数
print(t0.numel())
# 1

3.2 零维张量的转化

使用flatten()reshape()可以将标量转为向量。

t0 = torch.tensor(1)
print(t0.flatten())
# tensor([1])t0 = torch.tensor(1)
print(t0.reshape(1))
# tensor([1])

4 再谈什么是张量

在这里插入图片描述
Tensor是一个多维数组,它是标量、向量、矩阵的高维拓展。
在这里插入图片描述

http://www.yayakq.cn/news/269682/

相关文章:

  • 买空间去哪个网站优化是什么梗 棍勇
  • 网站排名大全怎么制作微信小程序
  • wordpress单位内网做网站云南网站建设百度
  • wordpress前端怎么写中山网站优化排名
  • 怎么修改公司网站图片谷歌网站流量统计
  • 网站开发专业就业好不好济南卓远网站建设
  • 做投标网站条件wordpress 无法更新
  • 网站建设包含哪些费用百度竞价项目
  • 绍兴建设开发有限公司网站低价郑州网站建设
  • 网站开发公司会计科目网站开发用c 语言
  • 开发网站年度工作总结及明年工作计划太原微网站建设谁家好
  • 延吉市住房城乡建设局网站asp.net网站开发四酷全书
  • 帮别人做视频剪辑的网站扬州网官方微博
  • 医院做网站备案需要哪些资料成都建设规划网站
  • 昆明网站seo多少钱做网站如何接单
  • 国内flex做的网站接加工订单的网站
  • 福永响应式网站建设有人拉我做彩票网站
  • 网站运营与推广计划书怎么做推广网站怎么做
  • 网站开发工具 下载codeus wordpress
  • 网站备案中商城服务性质是什么公司网页网站建设 ppt模板下载
  • 清新太和做网站网站规划的步骤
  • 文登区建设局网站网站开发学习什么
  • 关于医院网站建设的通知装修网站线怎样做
  • 可以做彩字的网站网站突然掉排名
  • 批量上传网站产品wordpress如何才能自己登陆进入自己的网站 进行修改呢
  • 网站建设杭州定制虚拟偶像汉化破解版
  • wordpress备份整站省级别网站建设方案
  • 找产品做代理都有哪个网站服装设计师月薪多少
  • 成都鸿邑网站建设手机站点cn
  • 网站开发工资怎么样河南做酒店网络系统网站