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

自己做的网站不显示图片宁波seo推广优化

自己做的网站不显示图片,宁波seo推广优化,香港服务器做网站,佛山债优化深度学习基础框架 张量 Tensor 张量数据操作导入创建张量获取张量信息改变张量张量运算 张量与内存 张量 Pytorch 是一个深度学习框架,用于开发和训练神经网络模型。 而其核心数据结构,则是张量 Tensor,类似于 Numpy 数组,但是可…

深度学习基础框架 张量 Tensor

  • 张量
  • 数据操作
    • 导入
    • 创建张量
    • 获取张量信息
    • 改变张量
    • 张量运算
  • 张量与内存

张量

Pytorch 是一个深度学习框架,用于开发和训练神经网络模型。

而其核心数据结构,则是张量 Tensor,类似于 Numpy 数组,但是可以支持在 GPU 上加速运算,显著加速模型训练过程,更适用于深度学习和神经网络模型的构建和学习。

张量是多维数组的泛化,可以是:

  • 标量(零维张量)
  • 向量(一维张量)
  • 矩阵(二维张量)
  • 或更高维度的数组;
  • e . g . e.g. e.g. RGB 图像可以表示为三维张量,其中一个维度表示高度,另一个维度表示宽度,最后一个维度表示颜色通道:
[[[255, 0, 0], [0, 255, 0], [0, 0, 255]],
[[0, 255, 255], [255, 255, 0], [255, 0, 255]]]

此外,后期读者会接触到梯度下降与反向传播,而张量非常重要一点,即可以自动求导,方便计算梯度并更新模型参数。


数据操作

导入

首先,导入 torch,需要注意的是,虽然称为 Pytorch,但是我们应该导入 torch 而不是 Pytorch

import torch

创建张量

张量 tensor 表示一个数值组成的数组,

x = torch.arange(12)
print(x)
# >>> 表示结果输出
>>> tensor([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11])

通过 zeros 函数与 ones 函数创建全0、全1元素,

torch.zeros((2, 3, 4))>>> tensor([[[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]],[[0., 0., 0., 0.],[0., 0., 0., 0.],[0., 0., 0., 0.]]])

张量同样支持逻辑运算符构建,

x = torch.tensor([[1, 2, 4, 8], [1, 3, 9, 27]])
y = torch.tensor([[2, 2, 2, 2], [3, 3, 3, 3]])
x == y>>> tensor([[False,  True, False, False],[False,  True, False, False]])

获取张量信息

通过 shape 属性来访问张量的形状和张量中元素的总数,

# 张量的形状
x.shape>>> torch.Size([12])
# 张量中元素的总数
x.numel()>>> 12

对张量中所有元素进行求和会产生一个只有一个元素的张量,

x = torch.tensor([[1, 2, 4, 8], [1, 3, 9, 27]])
x.sum()>>> tensor(55)

通过用切片方法访问张量内指定位置元素,

x = torch.tensor([[1, 2, 4, 8], [1, 3, 9, 27]])
x[-1], x[1][1:3]>>> (tensor([1, 3, 9, 27]), tensor([3, 9]))

改变张量

通过 reshape 函数改变一个张量的形状而不改变元素数量和元素值,

x.reshape(3, 4)>>> tensor([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]])

通过 cat 函数把多个张量连结在一起,支持按指定维度 dim 拼接,

x = torch.tensor([[1, 2, 4, 8], [1, 3, 9, 27]])
y = torch.tensor([[2, 2, 2, 2], [3, 3, 3, 3]])
torch.cat((x, y), dim=0), torch.cat((x, y), dim=1)>>> (tensor([[ 1,  2,  4,  8],[ 1,  3,  9, 27],[ 2,  2,  2,  2],[ 3,  3,  3,  3]]),tensor([[ 1,  2,  4,  8,  2,  2,  2,  2],[ 1,  3,  9, 27,  3,  3,  3,  3]]))

通过指定索引将元素写入张量,

x = torch.tensor([[1, 2, 4, 8], [1, 3, 9, 27]])
x[1, 2] = 1111>>> tensor([[1, 2, 4, 8],[1, 3, 1111, 27]])
x = torch.tensor([[1, 2, 4, 8], [1, 3, 9, 27]])
x[1, :] = 12>>> tensor([[ 1,  2,  4,  8],[12, 12, 12, 12]])

张量运算

张量支持按元素运算,

x = torch.tensor([1.0, 2, 4, 8])
y = torch.tensor([2, 2, 2, 2])
x + y, x - y, x * y, x / y, x ** y>>> (tensor([ 3.,  4.,  6., 10.]),tensor([-1.,  0.,  2.,  6.]),tensor([ 2.,  4.,  8., 16.]),tensor([0.5000, 1.0000, 2.0000, 4.0000]),tensor([ 1.,  4., 16., 64.]))

张量加法中,即使形状不同,我们仍然可以通过调用广播机制来执行张量加法,

a = torch.arange(3).reshape((3, 1))
b = torch.arange(2).reshape((1, 2))
a + b>>> tensor([[0, 1],[1, 2],[2, 3]])

张量与内存

虽然 Python 中很少涉及到内存处理,但是如果矩阵很大,就需要考虑到内存方面。

在运行一些操作时,可能会导致为新结果分配内存,

before = id(Y)
Y = Y + X
id(Y) == before>>> False		# 说明新内存地址不等同于原内存地址

如果我们的矩阵 Y 非常大,为了效率考虑,不更换内存地址,减少操作的内存开销,怎么做?

before = id(Y)
Y += X
id(Y) == before>>> True		# 说明没有新分配内存空间

NumpyPython 里最基础的多元数组运算框架,所以也要多关注 NumpyTensor 之间的转化。

http://www.jinmujx.cn/news/109993.html

相关文章:

  • app十大免费下载排行榜seo网络搜索引擎优化
  • 太原优化网站排名网页设计代码大全
  • 网站建设服务开发今天新闻联播
  • 繁体网站模板网站制作步骤流程图
  • 用asp做网站优势企业员工培训内容及计划
  • wordpress导航字符限制seoaoo
  • 做热点链接的网站青岛网站制作设计
  • 武汉免费网站制作百度指数的使用
  • 哈尔滨学校网站建设百度爱采购优化
  • 网站设计创新点怎么写简述企业网站如何推广
  • 兰州网站排名公司免费自助建站模板
  • 高水平大学建设大学网站搜索引擎优化专员
  • 主角重生做代购网站发家网站设计制作在哪里找
  • 外贸网站违反谷歌规则西安seo按天收费
  • 甘肃省嘉峪关建设局网站seo优化方案总结
  • 杭州做网站外包公司有哪些网站搜索引擎优化方案的案例
  • 做注册任务赚钱的网站网络营销课程个人感悟
  • 丽水专业做网站持啊传媒企业推广
  • 展馆公司长沙seo排名公司
  • sap和国家网站做接口网络优化seo薪酬
  • 免费推荐大全app下载搜索引擎优化答案
  • 云南城市建设官方网站武汉百捷集团百度推广服务有限公司
  • 专业的上海网站建设公司排名网络营销推广策略有哪些
  • 网络优化软件下载seo需要培训才能找到工作吗
  • 山东网站建设运行工资seo专业术语
  • 如何利用国外网站做自媒体万网官网首页
  • 网站动态添加广告怎么做的抖音seo培训
  • 网站建设技巧亅金手指排名272023年5月最新疫情
  • 多元网络兰州网站建设福州seo快速排名软件
  • 网站开发者所有权归属国际新闻快报