网络建站模板/潮州seo建站

网络建站模板,潮州seo建站,wordpress wap插件,server2012 wordpress文章目录 张量的创建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://www.mzph.cn/pingmian/72547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于asp.net实现的连锁餐厅收银系统[包运行成功+永久免费答疑辅导]

基于ASP.NET实现的连锁餐厅收银系统背景,可以从以下几个方面进行阐述: 一、技术背景 ASP.NET框架的普及与优势: ASP.NET是微软开发的一种用于构建Web应用程序的框架,它基于.NET Framework,提供了丰富的类库和开发工具…

PyTorch 深度学习实战(11):强化学习与深度 Q 网络(DQN)

在之前的文章中,我们介绍了神经网络、卷积神经网络(CNN)、循环神经网络(RNN)、Transformer 等多种深度学习模型,并应用于图像分类、文本分类、时间序列预测等任务。本文将介绍强化学习的基本概念&#xff0…

92.HarmonyOS NEXT开发学习路径与最佳实践总结:构建高质量应用

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! HarmonyOS NEXT开发学习路径与最佳实践总结:构建高质量应用 文章目录 HarmonyOS NEXT开发学习路径与最佳实践总结:构建高质…

HarmonyOS-应用程序框架基础

应用程序框架与应用模型的区别 应用框架可以看做是应用模型的一种实现方式,开发人员可以用应用模型来描述应用程序的结构和行为的描述,然后使用应用程序框架来实现这些描述。 应用模型 应用模型是一个应用程序的模型,它是一种抽象的描述&a…

审批工作流系统xFlow

WorkFlow-审批流程系统 该项目为完全开源免费项目 可用于学习或搭建初始化审批流程系统 希望有用的小伙伴记得点个免费的star gitee仓库地址 仿钉钉飞书工作审批流系统 介绍 前端技术栈: vue3 ts vite arcodesign eslint 后端技术栈:springbootspring mvc mybatis mavenmysq…

本地算力部署大模型详细流程(二)

1、前景回顾 上一篇我们通过ollama本地部署了一个DeepSeek,因为没有前端操作页面,我们只能使用cmd的方式和deepseek对话体验感并不是很好,下面我们通过Docker部署一个前端页面(Open WebUI) Open WebUI地址:…

django+vue3实现前后端大文件分片下载

效果: 大文件分片下载支持的功能: 展示目标文件信息提高下载速度:通过并发请求多个块,可以更有效地利用网络带宽断点续传:支持暂停后从已下载部分继续,无需重新开始错误恢复:单个块下载失败只…

ICMP、UDP以及IP、ARP报文包的仲裁处理

在之前的章节中,笔者就UDP、ICMP、IP、ARP、MAC层以及巨型帧等做了详细介绍以及代码实现及仿真,从本章节开始,笔者将就各个模块组合在一起,实现UDP协议栈的整体收发,在实现模块的整体组合之前,还需要考虑一…

【NLP 38、实践 ⑩ NER 命名实体识别任务 Bert 实现】

去做具体的事,然后稳稳托举自己 —— 25.3.17 数据文件: 通过网盘分享的文件:Ner命名实体识别任务 链接: https://pan.baidu.com/s/1fUiin2um4PCS5i91V9dJFA?pwdyc6u 提取码: yc6u --来自百度网盘超级会员v3的分享 一、配置文件 config.py …

Linux 蓝牙音频软件栈实现分析

Linux 蓝牙音频软件栈实现分析 蓝牙协议栈简介蓝牙控制器探测BlueZ 插件系统及音频插件蓝牙协议栈简介 蓝牙协议栈是实现蓝牙通信功能的软件架构,它由多个层次组成,每一层负责特定的功能。蓝牙协议栈的设计遵循蓝牙标准 (由蓝牙技术联盟,Bluetooth SIG 定义),支持多种蓝牙…

JetBrains(全家桶: IDEA、WebStorm、GoLand、PyCharm) 2024.3+ 2025 版免费体验方案

JetBrains(全家桶: IDEA、WebStorm、GoLand、PyCharm) 2024.3 2025 版免费体验方案 前言 JetBrains IDE 是许多开发者的主力工具,但从 2024.02 版本起,JetBrains 调整了试用政策,新用户不再享有默认的 30 天免费试用…

Prosys OPC UA Gateway:实现 OPC Classic 与 OPC UA 无缝连接

在工业自动化的数字化转型中,设备与系统之间的高效通信至关重要。然而,许多企业仍依赖于基于 COM/DCOM 技术的 OPC 产品,这给与现代化的 OPC UA 架构的集成带来了挑战。 Prosys OPC UA Gateway 正是为解决这一问题而生,它作为一款…

基于银河麒麟系统ARM架构安装达梦数据库并配置主从模式

达梦数据库简要概述 达梦数据库(DM Database)是一款由武汉达梦公司开发的关系型数据库管理系统,支持多种高可用性和数据同步方案。在主从模式(也称为 Master-Slave 或 Primary-Secondary 模式)中,主要通过…

系统思考全球化落地

感谢加密货币公司Bybit的再次邀请,为全球团队分享系统思考课程!虽然大家来自不同国家,线上学习的形式依然让大家充满热情与互动,思维的碰撞不断激发新的灵感。 尽管时间存在挑战,但我看到大家的讨论异常积极&#xff…

Figma的汉化

Figma的汉化插件有客户端版本与Chrome版本,大家可根据自己的需要进行选择。 下载插件 进入Figma软件汉化-Figma中文版下载-Figma中文社区使用客户端:直接下载客户端使用网页版:安装chrome浏览器汉化插件国外推荐前往chrome商店安装国内推荐下…

IDEA 一键完成:打包 + 推送 + 部署docker镜像

1、本方案要解决场景? 想直接通过本地 IDEA 将最新的代码部署到远程服务器上。 2、本方案适用于什么样的项目? 项目是一个 Spring Boot 的 Java 项目。项目用 maven 进行管理。项目的运行基于 docker 容器(即项目将被打成 docker image&am…

SpringBoot 第一课(Ⅲ) 配置类注解

目录 一、PropertySource 二、ImportResource ①SpringConfig (Spring框架全注解) ②ImportResource注解实现 三、Bean 四、多配置文件 多Profile文件的使用 文件命名约定: 激活Profile: YAML文件支持多文档块&#xff…

深度解析React Native底层核心架构

React Native 工作原理深度解析 一、核心架构:三层异构协作体系 React Native 的跨平台能力源于其独特的 JS层-Shadow层-Native层 架构设计,三者在不同线程中协同工作: JS层 运行于JavaScriptCore(iOS)或Hermes&…

对话智能体的正确打开方式:解析主流AI聊天工具的核心能力与使用方式

一、人机对话的黄金法则 在与人工智能对话系统交互时,掌握以下七项核心原则可显著提升沟通效率:文末有教程分享地址 意图精准表达术 采用"背景需求限定条件"的结构化表达 示例优化:"请用Python编写一个网络爬虫&#xff08…

Xinference大模型配置介绍并通过git-lfs、hf-mirror安装

文章目录 一、Xinference开机服务systemd二、语言(LLM)模型2.1 配置介绍2.2 DeepSeek-R1-Distill-Qwen-32B(大杯)工具下载git-lfs(可以绕过Hugging Face) 2.3 DeepSeek-R1-Distill-Qwen-32B-Q4_K_M-GGUF&am…