pytorch中张量的有关操作
pytorch中张量的有关操作
- 创建张量
- torch.tensor(data): 从数据创建张量
- torch.zeros(size): 创建元素全为0的张量
- torch.ones(size): 创建元素全为1的张量
- torch.empty(size): 创建未初始化的张量
- torch.randn(size): 创建服从标准正态分布的张量
- torch.arange(start, end, step): 创建一个范围内的一维张量
- torch.linspace(start, end, steps): 创建一个在指定范围内均匀间隔的张量
- 张量属性相关
- .dtype: 获取张量的数据类型
- .shape: 获取张量的形状
- .device: 获取张量所在的设备
- 张量索引、切片与拼接
- tensor[index]: 索引操作
- 使用切片来获取张量的子张量
- 沿着指定维度将多个张量连接在一起
- 在一个新的维度上堆叠多个张量
- 张量变换
- tensor.view(shape): 返回给定形状的张量视图
- 返回一个具有指定形状的新张量,原始张量的元素数量必须与新形状一致
- 交换张量中两个维度的位置
- 按照给定顺序重新排列张量的维度
- 删除张量中所有长度为1的维度
- 在指定位置增加一个长度为1的新维度
创建张量
torch.tensor(data): 从数据创建张量
这个函数会根据提供的数据创建一个新的张量。数据可以是列表、数组等。
import torchdata = [1, 2, 3, 4, 5]
tensor_data = torch.tensor(data)
print(tensor_data)
torch.zeros(size): 创建元素全为0的张量
创建一个指定大小的张量,其中所有元素的值都为0。
import torchsize = (2, 3)
zeros_tensor = torch.zeros(size)
print(zeros_tensor)
torch.ones(size): 创建元素全为1的张量
创建一个指定大小的张量,其中所有元素的值都为1。
import torchsize = (2, 3)
ones_tensor = torch.ones(size)
print(ones_tensor)
torch.empty(size): 创建未初始化的张量
创建一个指定大小的未初始化张量,其值取决于内存的状态。
import torchsize = (2, 3)
empty_tensor = torch.empty(size)
print(empty_tensor)
torch.randn(size): 创建服从标准正态分布的张量
创建一个指定大小的张量,其中的元素值是从标准正态分布中随机抽取的。
import torchsize = (2, 3)
randn_tensor = torch.randn(size)
print(randn_tensor)
torch.arange(start, end, step): 创建一个范围内的一维张量
创建一个一维张量,其中的元素值从起始值到结束值,步长为给定的步长。
import torchstart = 0
end = 5
step = 1
arange_tensor = torch.arange(start, end, step)
print(arange_tensor)
torch.linspace(start, end, steps): 创建一个在指定范围内均匀间隔的张量
创建一个一维张量,其中的元素值在指定范围内均匀分布。
import torchstart = 0
end = 5
steps = 5
linspace_tensor = torch.linspace(start, end, steps)
print(linspace_tensor)
张量属性相关
.dtype: 获取张量的数据类型
返回张量中元素的数据类型。
import torchtensor = torch.tensor([1, 2, 3])
print(tensor.dtype)
.shape: 获取张量的形状
返回一个元组,表示张量的形状。
import torchtensor = torch.tensor([[1, 2, 3], [4, 5, 6]])
print(tensor.shape)
.device: 获取张量所在的设备
返回一个字符串,表示张量所在的设备,如’cpu’或’cuda:0’。
import torchtensor = torch.tensor([1, 2, 3])
print(tensor.device)
张量索引、切片与拼接
tensor[index]: 索引操作
使用索引来访问张量中的元素。
import torchtensor = torch.tensor([[1, 2, 3], [4, 5, 6]])
element = tensor[0, 1] # Accesses the element at row 0, column 1
print(element)
tensor[start:end]: 切片操作
使用切片来获取张量的子张量
import torchtensor = torch.tensor([[1, 2, 3], [4, 5, 6]])
sub_tensor = tensor[:, 1:] # Slices the tensor to get all rows and columns starting from the second column
print(sub_tensor)
torch.cat(tensors, dim): 在给定维度上连接张量
沿着指定维度将多个张量连接在一起
import torchtensor1 = torch.tensor([[1, 2], [3, 4]])
tensor2 = torch.tensor([[5, 6], [7, 8]])
concatenated_tensor = torch.cat((tensor1, tensor2), dim=0) # Concatenates along the row dimension
print(concatenated_tensor)
torch.stack(tensors, dim): 在新维度上堆叠张量
在一个新的维度上堆叠多个张量
import torchtensor1 = torch.tensor([1, 2, 3])
tensor2 = torch.tensor([4, 5, 6])
stacked_tensor = torch.stack((tensor1, tensor2), dim=1) # Stacks tensors along a new dimension
print(stacked_tensor)
张量变换
tensor.view(shape): 返回给定形状的张量视图
返回一个具有指定形状的新张量,原始张量的形状必须与新形状兼容。
import torchtensor = torch.tensor([[1, 2], [3, 4]])
reshaped_tensor = tensor.view(1, 4) # Reshapes the tensor to a 1x4 tensor
print(reshaped_tensor)
tensor.reshape(shape): 改变张量的形状
返回一个具有指定形状的新张量,原始张量的元素数量必须与新形状一致
import torchtensor = torch.tensor([[1, 2], [3, 4]])
reshaped_tensor = tensor.reshape(1, 4) # Reshapes the tensor to a 1x4 tensor
print(reshaped_tensor)
tensor.transpose(dim0, dim1): 交换两个维度
交换张量中两个维度的位置
import torchtensor = torch.tensor([[1, 2], [3, 4]])
transposed_tensor = tensor.transpose(0, 1) # Swaps the first and second dimensions
print(transposed_tensor)
tensor.permute(*dims): 按照指定顺序排列张量的维度
按照给定顺序重新排列张量的维度
import torchtensor = torch.tensor([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
permuted_tensor = tensor.permute(1, 0, 2) # Permutes the dimensions to (1, 0, 2)
print(permuted_tensor)
tensor.squeeze(): 删除所有长度为1的维度
删除张量中所有长度为1的维度
import torchtensor = torch.tensor([[[1, 2], [3, 4]]])
squeezed_tensor = tensor.squeeze() # Removes the single-dimensional entries
print(squeezed_tensor)
tensor.unsqueeze(dim): 在指定位置增加一个维度
在指定位置增加一个长度为1的新维度
import torchtensor = torch.tensor([[1, 2], [3, 4]])
unsqueezed_tensor = tensor.unsqueeze(0) # Adds a dimension at index 0
print(unsqueezed_tensor)
相关文章:
pytorch中张量的有关操作
pytorch中张量的有关操作 创建张量torch.tensor(data): 从数据创建张量torch.zeros(size): 创建元素全为0的张量torch.ones(size): 创建元素全为1的张量torch.empty(size): 创建未初始化的张量torch.randn(size): 创建服从标准正态分布的张量torch.arange(start, end, step): 创…...
Windows多线程编程 互斥量和临界区使用
Windows 多线程编程允许程序同时运行多个线程,提高程序的并发性和执行效率。多线程编程中的核心概念包括线程的创建、同步、调度、数据共享和竞争条件等。本文详细介绍了 Windows 多线程编程的关键技术点,并解释如何使用线程同步机制来保证线程安全。 1…...
Java中集合类型的转换
在Java编程中,集合框架(Collections Framework)提供了一套用于存储和处理对象集合的接口和类。由于集合框架的灵活性和强大功能,我们经常需要在不同的集合类型之间进行转换。本文将介绍Java中常见的集合类型转换方法,包…...
汽车售后TPMS浅谈
汽车售后中的TPMS,即轮胎压力监测系统(Tire Pressure Monitoring System),是一种重要的汽车安全系统。以下是对汽车售后TPMS的详细解释: 一、TPMS的作用 TPMS的主要作用是在汽车行驶过程中对轮胎气压进行实时自动监测…...
LUCEDA IPKISS Tutorial 77:在版图一定范围内填充dummy
案例分享:在给定的Shape内填充dummy 所有代码如下: from si_fab import all as pdk from ipkiss3 import all as i3 from shapely.geometry import Polygon, MultiPolygon import numpy as np import matplotlib.pyplot as pltclass CellFilledWithCon…...
TON生态小游戏开发:推广、经济模型与UI设计的建设指南
随着区块链技术的快速发展,基于区块链的Web3游戏正引领行业变革。而TON生态小游戏,借助Telegram庞大的用户基础和TON(The Open Network)链上技术,已成为这一领域的明星之一。国内外开发者正迅速涌入,开发和…...
Python 量子机器学习:基础概念、关键算法与应用实践
🌟 Python 量子机器学习:基础概念、关键算法与应用实践 目录 🌍 量子计算的基本原理 量子位、叠加、纠缠等概念解析量子计算如何影响机器学习:速度与效率的提升 🚀 量子机器学习中的关键算法 量子支持向量机…...
信息安全数学基础(29) x^2 + y^2 = p
前言 方程 x2y2p 是一个涉及整数解和素数 p 的二次方程。这个方程在数论和几何中都有重要的意义,特别是在研究圆的整数点和费马大定理的背景下。 一、定义与背景 方程 x2y2p 表示一个平面上的圆,其圆心在原点 (0,0),半径为 p(当…...
ChatGPT国内中文版镜像网站整理合集(2024/10/06)
一、GPT中文镜像站 ① yixiaai.com 支持GPT4、4o以及o1,支持MJ绘画 ② chat.lify.vip 支持通用全模型,支持文件读取、插件、绘画、AIPPT ③ AI Chat 支持GPT3.5/4,4o以及MJ绘画 1. 什么是镜像站 镜像站(Mirror Siteÿ…...
图文深入理解Oracle DB Scheduler
值此国庆佳节,深宅家中,闲来无事,就多写几篇博文。今天继续宅继续写。本篇图文深入介绍Oracle DB Scheduler。 Oracle为什么要使Scheduler? 答案就是6个字:简化管理任务。 • Scheduler(调度程序&#x…...
gin如何具体利用Server-Send-Events(SSE)实时推送技术实现消息推送
目录 业务场景 解决方案 1. 轮询 2. WebSocket 3. SSE(Server-Send-Events) 代码实现 总结 业务场景 在抖音、美团等APP中,我们经常会遇到APP内部的消息推送,如关注的人的动态消息推送、点赞评论互动消息推送以及算法推荐消息推送。这些场景都是…...
写端口-tcp udp不同方式发包和接包
最近一直在学习网络编程,今天把 socket部分做一个总结。 Python 的socket库可以实现不同协议不同地址的发包和收包,无奈资料很少,官方例子有限,大神博客很少提及, 经过一番尝试后,总结以下几点用法以便大家…...
计算机的错误计算(一百二十)
摘要 探讨在许多应用中出现的函数 的计算精度问题。 例1. 考虑在许多应用中出现的函数 计算 不妨在Python下计算: 若用下列Rust代码在线计算: fn f(x: f64) -> f64 {(x.exp() - 1.0) / x }fn main() {let result f(0.9e-13);println!("…...
Spring Boot 中使用 JSON Schema 来校验复杂 JSON 数据
博客主页: 南来_北往 系列专栏:Spring Boot实战 在现代软件开发中,尤其是构建 RESTful API 时,处理 JSON 数据已成为一项基本任务。JSON(JavaScript Object Notation)因其轻量级和易于人类阅读的特点ÿ…...
QT实现Opencv图像处理
案例 基于QT的人脸识别 pro文件需要加以下代码 INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include/opencv INCLUDEPATH E:/opencv/opencv3.4-qt-intall/install/include/opencv2 LIBS E:/opencv/o…...
刚转Mac的新手如何卸载不需要的应用程序
最开始转Mac系统的时候很是苦恼,到底该怎么卸载App啊,App直接拖到废纸篓真的能卸载干净吗,卸载App时会不会留下一些文件残留,慢慢的会不会占满内存,于是我找到了一个免费的卸载工具——XApp。 这是一款Mac应用程序卸载…...
Unity 3d 继承MonoBahaviour的单例
在使用Unity3d开发游戏或做客户端项目时,单例是最常见的模式之一,他简单了类的创建,在代码中可以直接调用。下面是两个例子,代码两种不同类型的单例,一个是基本类的单例基类,不是unity MonoBehaviour的类都…...
grafana version 11.1.0 设置Y轴刻度为1
grafana 版本 # /usr/share/grafana/bin/grafana --version grafana version 11.1.0设置轴 Axis 搜索 Standard options 在"Decimals"中输入0,确保只显示整数...
Elasticsearch的安装与配置
注意:elasticsearch 禁止安装在/root路径下! 1、创建用户组 groupadd elastic 2、创建用户 useradd es -d /home/es -g elastic echo es | passwd es --stdin 3、给新创建的用户进行授权 chown -R es:elastic /home/es chmod -R 775 /home/es 4…...
win0删除 Windows.old
参考:https://blog.csdn.net/xitongzhijia_abc/article/details/126270452 win10如下所示: 打开 设置–>系统—>存储...
GPT-4V食物识别实测:准确率真能到87.5%?我们复现了那篇论文的实验
GPT-4V食物识别技术深度测评:从实验室数据到真实场景的挑战 当一张摆盘精致的牛排照片被上传到GPT-4V界面,三秒后系统不仅识别出"肋眼牛排",还精确标注出"约350克"和"780千卡"时,这种看似科幻的场景…...
ARM Cortex-M微控制器与瑞萨RA系列开发实战指南
1. 项目概述:从“ARM”到“瑞萨RA”的认知之旅在嵌入式开发的江湖里,如果你还在纠结于8位、16位单片机的选型,或者对“ARM Cortex-M”这个名词感到既熟悉又陌生,那么这篇文章就是为你准备的。我接触过不少从传统8051、AVR转型过来…...
我用豆包写的论文 AI 率为什么 95%?这款工具一次降到 4% 万方检测合格
我用豆包写的论文 AI 率为什么 95%?这款工具一次降到 4% 万方检测合格 去年我用豆包写了 1 万字的生物学本科论文——自己读着挺顺、像人写的。送学校万方 AIGC 检测——AI 率 95.7%,学校卡的是 30%。我整个人懵了。 这篇文章我把当时的实测过程写下来—…...
【Perplexity药物信息检索实战指南】:20年药学IT专家亲授3大避坑法则与5步精准检索法
更多请点击: https://codechina.net 第一章:Perplexity药物信息检索实战指南导论 Perplexity 是一款基于大语言模型的实时网络增强型问答工具,其在生物医药领域展现出独特优势——尤其适用于快速定位权威、时效性强的药物信息,如…...
m4s-converter:一键解决B站缓存视频的格式兼容难题
m4s-converter:一键解决B站缓存视频的格式兼容难题 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾经遇到过这样的场景&…...
3个神奇步骤:用QRazyBox轻松修复任何损坏的二维码
3个神奇步骤:用QRazyBox轻松修复任何损坏的二维码 【免费下载链接】qrazybox QR Code Analysis and Recovery Toolkit 项目地址: https://gitcode.com/gh_mirrors/qr/qrazybox 你是否曾经遇到过这种情况:一张重要的二维码因为打印模糊、表面划伤或…...
QMC音频解密技术深度解析:算法实现与性能优化
QMC音频解密技术深度解析:算法实现与性能优化 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder QMC音频解密工具是一款专注于QQ音乐加密格式解密的开源解决方案&a…...
如何彻底摆脱网盘限速:8大主流网盘直链下载助手完整指南
如何彻底摆脱网盘限速:8大主流网盘直链下载助手完整指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天…...
青龙面板自动化签到终极指南:30+平台一键签到,每天节省30分钟
青龙面板自动化签到终极指南:30平台一键签到,每天节省30分钟 【免费下载链接】check 青龙面板平台签到函数 项目地址: https://gitcode.com/gh_mirrors/check5/check 还在为每天繁琐的签到任务烦恼吗?签到盒青龙版是你的完美解决方案&…...
【亲测免费】 普冉PY32F002A移植FreeRTOS资源文件
普冉PY32F002A移植FreeRTOS资源文件 【下载地址】普冉PY32F002A移植FreeRTOS资源文件 本资源文件提供了将FreeRTOS V9.0移植到普冉M0芯片PY32F002A的完整示例。开发环境基于KEIL,并使用了LL库进行移植。该示例展示了如何在PY32F002A芯片上运行四个任务,并…...
