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

网站建设服务网络服务锦州网站建设

网站建设服务网络服务,锦州网站建设,口碑做团购网站,软件开发流程有哪些步骤文章目录 张量的创建1. 安装 PyTorch2. 基本创建方式2.1 torch.tensor 根据指定数据创建张量2.2. torch.Tensor 根据形状创建张量, 其也可用来创建指定数据的张量2.3. 指定类型的张量创建2.3.1. torch.IntTensor:创建整数类型张量2.3.2. torch.FloatTensor&#xff…

文章目录

  • 张量的创建
  • 1. 安装 PyTorch
  • 2. 基本创建方式
    • 2.1 torch.tensor 根据指定数据创建张量
    • 2.2. torch.Tensor 根据形状创建张量, 其也可用来创建指定数据的张量
    • 2.3. 指定类型的张量创建
      • 2.3.1. torch.IntTensor:创建整数类型张量
      • 2.3.2. torch.FloatTensor:创建浮点类型张量
      • 2.3.3. torch.DoubleTensor:创建双精度浮点类型张量
    • 2.4. 指定数据类型的其他方式
    • 2.5. 总结
  • 3. 创建线性和随机张量
    • 3.1 创建线性张量
      • 3.1.1. torch.arange:创建等间隔的整数张量
      • 3.1.2. torch.linspace:创建等间隔的浮点数张量
    • 3.2. 随机种子设置
      • 3.2.1 torch.random.manual_seed:设置随机种子
    • 3.3. 创建随机张量
      • 3.3.1. torch.randn:创建标准正态分布的随机张量
      • 3.3.2. torch.rand:创建均匀分布的随机张量
      • 3.3.3. torch.randint:创建整数随机张量
      • 3.4. 总结
  • 4. 创建全 0\1 张量
    • 4.1. 创建全1 张量
      • 4.1.1. torch.ones:创建全 1 张量
      • 4.1.2. torch.ones_like:创建与输入张量形状相同的全 1 张量
    • 4.2. 创建全 0 张量
      • 4.2.1. torch.zeros:创建全 0 张量
      • 4.2.2. torch.zeros_like:创建与输入张量形状相同的全 0 张量
    • 4.3. 创建全为指定值的张量
      • 4.3.1. torch.full:创建全为指定值的张量
      • 4.3.2. torch.full_like:创建与输入张量形状相同的全为指定值的张量
      • 4.4. 总结
  • 5. 张量元素类型转换
    • 5.1. 使用 tensor.type() 方法
    • 5.2. 使用 tensor.double() 方法
    • 5.3. 其他类型转换方法
    • 5.4. 使用 tensor.to() 方法
      • 5.4.1. 转换数据类型
      • 5.4.2. 同时转换设备和数据类型
    • 5.5. 总结

张量的创建

PyTorch 是一个广泛使用的开源深度学习框架,由 Facebook 的 AI 研究团队开发,并以其灵活性和易于使用的特性而受到许多研究者和开发者的喜爱。它将数据封装成张量(Tensor)来进行运算。PyTorch 中的张量就是元素为同一种数据类型的多维矩阵。在 PyTorch 中,张量以 “类” 的形式封装起来,对张量的一些运算、处理的方法被封装在类中。

1. 安装 PyTorch

首先,确保你已经安装了 PyTorch。你可以通过 Python 的包管理器 pip 来安装它:

pip install torch torchvision

2. 基本创建方式

torch.IntTensor、torch.FloatTensor、torch.DoubleTensor 创建指定类型的张量

2.1 torch.tensor 根据指定数据创建张量

torch.tensor 是直接从数据(如列表、元组等)创建张量的方法。它会根据输入的数据推断数据类型(dtype)。

import torch
# 从列表创建张量
data = [1, 2, 3, 4]
x = torch.tensor(data)
print(x)
print(x.dtype)  # 默认推断为 torch.int64
程序输出:
tensor([1, 2, 3, 4])
torch.int64

2.2. torch.Tensor 根据形状创建张量, 其也可用来创建指定数据的张量

torch.Tensor 是一个类,可以用来创建未初始化的张量。它接受形状(shape)作为参数,返回一个未初始化的张量。

# 创建一个 2x3 的未初始化张量
x = torch.Tensor(2, 3)
print(x)

输出:

tensor([[1.4013e-45, 0.0000e+00, 1.4013e-45],[0.0000e+00, 1.4013e-45, 0.0000e+00]])

注意:torch.Tensor 也可以用来创建指定数据的张量,但不推荐这种方式,因为它的行为不如 torch.tensor 直观。

# 不推荐:从列表创建张量
data = [1, 2, 3, 4]
x = torch.Tensor(data)
print(x)

输出:

tensor([1., 2., 3., 4.])

2.3. 指定类型的张量创建

PyTorch 提供了多种数据类型(dtype),可以通过以下方式创建指定类型的张量:

2.3.1. torch.IntTensor:创建整数类型张量

# 创建一个 2x2 的整数类型张量
x = torch.IntTensor([[1, 2], [3, 4]])
print(x)
print(x.dtype)  # torch.int32

输出:

tensor([[1, 2],[3, 4]], dtype=torch.int32)
torch.int32

2.3.2. torch.FloatTensor:创建浮点类型张量

# 创建一个 2x2 的浮点类型张量
x = torch.FloatTensor([[1, 2], [3, 4]])
print(x)
print(x.dtype)  # torch.float32

输出:

ensor([[1., 2.],[3., 4.]])
torch.float32

2.3.3. torch.DoubleTensor:创建双精度浮点类型张量

# 创建一个 2x2 的双精度浮点类型张量
x = torch.DoubleTensor([[1, 2], [3, 4]])
print(x)
print(x.dtype)  # torch.float64

输出:

tensor([[1., 2.],[3., 4.]], dtype=torch.float64)
torch.float64

2.4. 指定数据类型的其他方式

除了使用 torch.IntTensor、torch.FloatTensor 等,还可以通过 dtype 参数直接指定数据类型。

# 创建一个 2x2 的浮点类型张量
x = torch.tensor([[1, 2], [3, 4]], dtype=torch.float32)
print(x)
print(x.dtype)  # torch.float32

输出:

tensor([[1., 2.],[3., 4.]])
torch.float32

2.5. 总结

方法用途
torch.tensor(data)根据数据创建张量,自动推断数据类型。
torch.Tensor(shape)根据形状创建未初始化的张量。
torch.IntTensor(data)创建整数类型(torch.int32)的张量。
torch.FloatTensor(data)创建浮点类型(torch.float32)的张量。
torch.DoubleTensor(data)创建双精度浮点类型(torch.float64)的张量。
torch.tensor(data, dtype=…)创建指定数据类型的张量(推荐,更直观且灵活)。

3. 创建线性和随机张量

3.1 创建线性张量

3.1.1. torch.arange:创建等间隔的整数张量

torch.arange 用于创建一个从起始值到结束值(不包括结束值)的等间隔整数张量。

import torch
# 创建一个从 0 到 9 的张量
x = torch.arange(10)
print(x)

输出:

tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

可以指定起始值、结束值和步长:

# 创建一个从 2 到 8,步长为 2 的张量
x = torch.arange(2, 10, 2)
print(x)

输出:

tensor([2, 4, 6, 8])

3.1.2. torch.linspace:创建等间隔的浮点数张量

torch.linspace 用于创建一个从起始值到结束值的等间隔浮点数张量,可以指定元素的数量。

# 创建一个从 0 到 1 的 5 个等间隔元素的张量
x = torch.linspace(0, 1, 5)
print(x)

输出:

tensor([0.0000, 0.2500, 0.5000, 0.7500, 1.0000])

3.2. 随机种子设置

为了保证随机实验的可重复性,可以设置随机种子。

3.2.1 torch.random.manual_seed:设置随机种子

# 设置随机种子
torch.random.manual_seed(42)
# 创建一个随机张量
x = torch.randn(2, 2)
print(x)

输出:

tensor([[ 0.3367,  0.1288],[ 0.2345,  0.2303]])

注:每次运行代码时,生成的随机张量都会相同。

3.3. 创建随机张量

3.3.1. torch.randn:创建标准正态分布的随机张量

torch.randn 用于创建服从标准正态分布(均值为 0,方差为 1)的随机张量。

# 创建一个 2x2 的标准正态分布随机张量
x = torch.randn(2, 2)
print(x)

输出:

tensor([[-0.4032,  0.8380],[-1.3886, -0.2935]])

3.3.2. torch.rand:创建均匀分布的随机张量

torch.rand 用于创建在 [0, 1) 区间内均匀分布的随机张量。

# 创建一个 2x2 的均匀分布随机张量
x = torch.rand(2, 2)
print(x)

输出:

tensor([[0.1234, 0.5678],[0.9101, 0.2345]])

3.3.3. torch.randint:创建整数随机张量

torch.randint 用于创建指定范围内的整数随机张量。

# 创建一个 2x2 的随机整数张量,范围在 [0, 10)
x = torch.randint(0, 10, (2, 2))
print(x)

输出:

tensor([[3, 7],[2, 5]])

3.4. 总结

方法用途
torch.arange(start, end, step)创建等间隔的整数张量。
torch.linspace(start, end, steps)创建等间隔的浮点数张量。
torch.random.manual_seed(seed)设置随机种子,确保实验可重复。
torch.randn(shape)创建标准正态分布的随机张量。
torch.rand(shape)创建 [0, 1) 区间内均匀分布的随机张量。
torch.randint(low, high, shape)创建指定范围内的整数随机张量。

4. 创建全 0\1 张量

4.1. 创建全1 张量

4.1.1. torch.ones:创建全 1 张量

torch.ones 用于创建指定形状的全 1 张量。

import torch# 创建一个 2x3 的全 1 张量
x = torch.ones(2, 3)
print(x)

输出:

tensor([[1., 1., 1.],[1., 1., 1.]])

4.1.2. torch.ones_like:创建与输入张量形状相同的全 1 张量

torch.ones_like 用于创建一个与输入张量形状相同的全 1 张量。

# 创建一个与 x 形状相同的全 1 张量
y = torch.ones_like(x)
print(y)

输出:

tensor([[1., 1., 1.],[1., 1., 1.]])

4.2. 创建全 0 张量

4.2.1. torch.zeros:创建全 0 张量

torch.zeros 用于创建指定形状的全 0 张量。

# 创建一个 2x3 的全 0 张量
x = torch.zeros(2, 3)
print(x)

输出:

tensor([[0., 0., 0.],[0., 0., 0.]])

4.2.2. torch.zeros_like:创建与输入张量形状相同的全 0 张量

torch.zeros_like 用于创建一个与输入张量形状相同的全 0 张量。

# 创建一个与 x 形状相同的全 0 张量
y = torch.zeros_like(x)
print(y)

输出:

tensor([[0., 0., 0.],[0., 0., 0.]])

4.3. 创建全为指定值的张量

4.3.1. torch.full:创建全为指定值的张量

torch.full 用于创建指定形状且所有元素为指定值的张量。

# 创建一个 2x3 的全为 5 的张量
x = torch.full((2, 3), 5)
print(x)

输出:

tensor([[5, 5, 5],[5, 5, 5]])

4.3.2. torch.full_like:创建与输入张量形状相同的全为指定值的张量

torch.full_like 用于创建一个与输入张量形状相同且所有元素为指定值的张量。

# 创建一个与 x 形状相同的全为 10 的张量
y = torch.full_like(x, 10)
print(y)

输出:

tensor([[10, 10, 10],[10, 10, 10]])

4.4. 总结

方法用途
torch.ones(shape)创建指定形状的全 1 张量。
torch.ones_like(input)创建与输入张量形状相同的全 1 张量。
torch.zeros(shape)创建指定形状的全 0 张量。
torch.zeros_like(input)创建与输入张量形状相同的全 0 张量。
torch.full(shape, value)创建指定形状且所有元素为指定值的张量。
torch.full_like(input, value)创建与输入张量形状相同且所有元素为指定值的张量。

5. 张量元素类型转换

5.1. 使用 tensor.type() 方法

tensor.type() 方法可以将张量转换为指定的类型。

import torch# 创建一个浮点类型的张量
x = torch.tensor([1.0, 2.0, 3.0])
print(x.dtype)  # 默认是 torch.float32# 转换为双精度浮点类型 (torch.float64)
x_double = x.type(torch.DoubleTensor)
print(x_double)
print(x_double.dtype)

输出:

torch.float32
tensor([1., 2., 3.], dtype=torch.float64)
torch.float64

5.2. 使用 tensor.double() 方法

tensor.double() 是 tensor.type(torch.DoubleTensor)
的简写形式,用于将张量转换为双精度浮点类型(torch.float64)。

# 转换为双精度浮点类型
x_double = x.double()
print(x_double)
print(x_double.dtype)

输出:

tensor([1., 2., 3.], dtype=torch.float64)
torch.float64

5.3. 其他类型转换方法

PyTorch 提供了多种类型转换方法,类似于 tensor.double(),可以直接调用:

方法转换为的类型
tensor.float()torch.float32
tensor.double()torch.float64
tensor.half()torch.float16
tensor.int()torch.int32
tensor.long()torch.int64
tensor.short()torch.int16
tensor.byte()torch.uint8
tensor.bool()torch.bool
示例:
# 创建一个浮点类型的张量
x = torch.tensor([1.0, 2.0, 3.0])# 转换为整型
x_int = x.int()
print(x_int)
print(x_int.dtype)# 转换为布尔型
x_bool = x.bool()
print(x_bool)
print(x_bool.dtype)

输出:

tensor([1, 2, 3], dtype=torch.int32)
torch.int32
tensor([True, True, True])
torch.bool

5.4. 使用 tensor.to() 方法

tensor.to() 是一个更通用的方法,可以用于设备(CPU/GPU)和类型的转换。

5.4.1. 转换数据类型

# 转换为双精度浮点类型
x_double = x.to(torch.float64)
print(x_double)
print(x_double.dtype)

输出:

tensor([1., 2., 3.], dtype=torch.float64)
torch.float64

5.4.2. 同时转换设备和数据类型

# 转换为 GPU 上的双精度浮点类型
if torch.cuda.is_available():x_gpu = x.to(device='cuda', dtype=torch.float64)print(x_gpu)print(x_gpu.dtype)

5.5. 总结

方法用途
tensor.type(torch.DoubleTensor)将张量转换为指定类型(如 torch.float64)。
tensor.double()将张量转换为双精度浮点类型(torch.float64)。
tensor.float()将张量转换为单精度浮点类型(torch.float32)。
tensor.int()将张量转换为整型(torch.int32)。
tensor.to(dtype=…)通用方法,支持设备转换和类型转换。

文章转载自:

http://5sltPwIK.krywy.cn
http://9Sc3DaNm.krywy.cn
http://dM3DqFOR.krywy.cn
http://fBRogEYe.krywy.cn
http://UisVJsj4.krywy.cn
http://jOewHaNY.krywy.cn
http://bepNbrHx.krywy.cn
http://IQEBnjN4.krywy.cn
http://IwxFimM1.krywy.cn
http://fPj4gA01.krywy.cn
http://oFMBUxtf.krywy.cn
http://t0P4Ty7I.krywy.cn
http://DvGvojVr.krywy.cn
http://rYYUIsQz.krywy.cn
http://fK3eWSzK.krywy.cn
http://T9FVqWlU.krywy.cn
http://R2y5AIbZ.krywy.cn
http://AEEA0aRI.krywy.cn
http://0z8FyHBL.krywy.cn
http://ZGjY1qs1.krywy.cn
http://hQueBwr2.krywy.cn
http://hdqjoSqJ.krywy.cn
http://7b4QQgdm.krywy.cn
http://Fx4poJpO.krywy.cn
http://2RMN4URB.krywy.cn
http://4tC8oVhy.krywy.cn
http://j0F5W90u.krywy.cn
http://p19ihIzg.krywy.cn
http://tWYGm9K5.krywy.cn
http://YyAQjvRa.krywy.cn
http://www.dtcms.com/wzjs/683455.html

相关文章:

  • 西安网站建设 至诚wordpress 上传svg
  • 南湖网站建设公司常州建设网站
  • 商城网站制作公司地址东莞网站设计价格
  • 网站定制开发加公众号设计网站做海报
  • 电信网站开发语言主要用什么网站开发设计思路
  • 做网站的具体内容北京发布最新消息今天
  • 营销网站建设网站制作公司国内正规的现货交易平台
  • 门户网站开发源代码国内吃瓜爆料黑料网曝门
  • 惠安建设局网站企业网站建设套餐费用
  • 宁夏建设工程质量监督站网站高校网站首页设计
  • 网站客户留言asp网站 并发数
  • 网站开发公司巨推网站建设的目标和需求分析
  • 西部数码 网站建设高端网吧电脑配置清单
  • 网站过度优化个人简历模板下载 免费完整版
  • 滑县网站建设服务怎么增加网站首页权重
  • 求个网站你会感谢我的批量外链工具
  • 企业网站源码进一品资源网wordpress如何防注入
  • 软文写作公司搜索引擎关键词优化
  • wordpress的tag函数使用教程点击seo软件
  • 做网站的硬件和软件环境产品推销
  • 做企业网站要用什么软件h5商城网站是什么
  • 网站建设和管理是教什么科目锡林郭勒盟建设工程造价信息管理网站
  • 怎么做网站的api吉林东奥建设集团网站
  • 昆明外贸网站设计服务商网站备案时要不要关闭
  • 中国电信网站备案 锁定百度网络电话
  • 网页上做ppt的网站好知名外贸网站建设公司
  • 可以做问卷调查的网站北京互联网公司大厂有哪些
  • 网上做效果图网站宁乡的网站建设
  • 做数据ppt模板下载网站品牌建设ppt文档下载
  • 网站空间数据向网站服务器上传网页文件下载