y _hat[ [ 0, 1], y ]语法——pytorch张量花式索引

目录

1. y _hat[ [ 0, 1]例子

2.pytorch花式索引

(1)简单行、列索引

(2)列表索引

(3)范围索引 

 (4)布尔索引

(5)多维索引 

3.张量拼接 

(1)torch.cat 函数的使用

 (2)torch.stack 函数的使用


1. y _hat[ [ 0, 1]例子

import torch
y = torch.tensor([0, 2])
y_hat = torch.tensor([[0.1, 0.3, 0.6], [0.3, 0.2, 0.5]])
y_hat[[0, 1], y]

简单阐述我对第四行代码的理解

y_hat是一个2*3的数组
y_hat[[0,1],y]中的[0,1]指的是第一行和第二行的索引,后面的y等价于[0,2]。那么可以这么理解y_hat[0,0]和y_hat[1,2]。最后的结果也证明了我的理解。

2.pytorch花式索引

(1)简单行、列索引
import torchdata = torch.randint(0, 10, [4, 5])  # 四行五列的二维张量
print(data)
print(data[2])     # 获取第三行数据,返回一维张量
print(data[:, 1])  # 获取第二列数据,返回一维张量
print(data[1, 2])  # 获取第二行的第三列数据,返回零维张量
print(data[1][2])  # 同上
(2)列表索引
import torchdata = torch.randint(0, 10, [4, 5])  # 四行五列的二维张量
print(data)
print(data[[1,0,2])                # 返回下标为1行、0行、2行共三行数据组成的3行5列的二维张量
print(data[[0,1,3], [3,2,4]])      # 返回下标为0行3列、1行2列、3行4列三个数据组成的一维张量
print(data[[[0],[1]], [[3],[4]]])  # 返回下标为0行3列、1行4列两个数据组成的2行1列的二维张量
print(data[[0,1], [[3],[4]]])      # 返回下标为0行3列、1行3列、0行4列、1行4列四个数据组成的2行2列的二维张量
print(data[[0,1], [[1,2],[0,4]]])  # 返回下标为0行1列、1行2列、0行0列、1行4列四个数据组成的2行2列的二维张量
print(data[[[1],[0]], [3,4]])      # 返回下标为1行3列、1行4列、0行3列、0行4列四个数据组成的2行2列的二维张量
print(data[[[1,3],[0,2]], [3,4]])  # 返回下标为1行3列、3行4列、0行3列、2行4列四个数据组成的2行2列的二维张量
(3)范围索引 
import torchdata = torch.randint(0, 10, [4, 5])  # 四行五列的二维张量
print(data)
print(data[:3, 4])   # 返回前三行的第五列数据组成的一维张量
print(data[:3, [0,2,4]])  # 返回前三行的第一三五列数据组成的二维张量
print(data[:3, :4])  # 返回前三行的前四列数据组成的二维张量
print(data[2:, :4])  # 返回第三行到末行的前四列数据组成的二维张量
 (4)布尔索引
import torchdata = torch.randint(0, 10, [4, 5])  # 四行五列的二维张量
print(data)
print(data[data > 5])  # 返回所有大于5的元素组成的一维张量
print(data[[True,False,True,False]])  # 返回第一行与第三行数据组成的二维张量
print(data[1:, [True,False,True,False,True]])  # 返回第二行到末行的第一三五列数据组成的二维张量
print(data[data[:, 2] > 5])  # 返回第三列大于5的行数据组成的二维张量
print(data[:, data[1] > 5])  # 返回第二行大于5的列数据组成的二维张量
(5)多维索引 
data = torch.randint(0, 10, [3, 4, 5])  # 三片四行五列的三维张量
print(data)
print(data[0, :, :])  # 返回第一片所有数据,四行五列的二维张量
print(data[:, 0, :])  # 返回所有片的第一行数据,三行五列的二维张量
print(data[:, :, 0])  # 返回所有片的第一列数据,三行四列的二维张量

3.张量拼接 

(1)torch.cat 函数的使用
import torchdata1 = torch.randint(0, 10, [3, 5, 4])
data2 = torch.randint(0, 10, [3, 5, 4])
print(data1)
print(data2)new_data = torch.cat([data1, data2], dim=0)  # 1. 按0维度拼接
print(new_data)  # shape:torch.Size([6, 5, 4])new_data = torch.cat([data1, data2], dim=1)  # 2. 按1维度拼接
print(new_data)  # shape:torch.Size([3, 10, 4])new_data = torch.cat([data1, data2], dim=2)  # 3. 按2维度拼接
print(new_data)  # shape:torch.Size([3, 5, 8])
 (2)torch.stack 函数的使用
import torchdata1= torch.randint(0, 10, [4, 5])
data2= torch.randint(0, 10, [4, 5])
print(data1)
print(data2)new_data = torch.stack([data1, data2], dim=0)  # 在0维度叠加,升维!
print(new_data)  # shape:torch.Size([2, 4, 5])new_data = torch.stack([data1, data2], dim=1)  # 在1维度叠加,升维!
print(new_data)  # shape:torch.Size([4, 2, 5])new_data = torch.stack([data1, data2], dim=2)  # 在2维度叠加,升维!
print(new_data)  # shape:torch.Size([4, 5, 2])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/102255.shtml

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

相关文章

易点易动设备管理系统:打通采购管理的智能化设备管理解决方案

在现代企业的运营中,设备管理是一个关键的环节。传统的设备管理方法往往效率低下,导致设备故障频发、巡检和维修工作不协调,备件管理不规范。为了解决这些问题,我们引入了易点易动设备管理系统,它能够全面管理设备的生…

华为云云耀云服务器L实例评测 | 实例评测使用之硬件参数评测:华为云云耀云服务器下的 Linux 网络监控神器 bmon

华为云云耀云服务器L实例评测 | 实例评测使用之硬件参数评测:华为云云耀云服务器下的 Linux 网络监控神器 bmon 介绍华为云云耀云服务器 华为云云耀云服务器 (目前已经全新升级为 华为云云耀云服务器L实例) 华为云云耀云服务器是什…

前端笔记:Create React App 初始化项目的几个关键文件解读

1 介绍 Create React App 是一个官方支持的方式,用于创建单页应用的 React 设置用于构建用户界面的 JAVASCRIPT 库主要用于构建 UI 2 项目结构 一个典型的 Create React App 项目结构如下: ├── package.json ├── public # 这…

#基于一个小车项目的FREERTOS分析(一)系统时钟

系统时钟 //初始化延迟函数 //SYSTICK的时钟固定为AHB时钟,基础例程里面SYSTICK时钟频率为AHB/8 //这里为了兼容FreeRTOS,所以将SYSTICK的时钟频率改为AHB的频率! //SYSCLK:系统时钟频率 /* 系统定时器是一个 24bit 的向下递减的计数器&…

Python使用MySQL,无记录则插入,有记录则更新 - ON DUPLICATE KEY UPDATE

一、基本语法 ON DUPLICATE KEY UPDATE 语句基本功能是:当表中没有原来记录时,就插入,有的话就更新。 使用注意事项如下: ON DUPLICATE KEY UPDATE语句根据主键id或唯一键来判断当前插入是否已存在。记录已存在时,只…

git删除文件

qt中点击删除文件后,不要从git版本控制中删除此文件 git rm test.txt 然后git add,git commit-m""

Linux 测试端口是否放行

Linux 测试端口是否放行 1、准备2、在 CentOS 7 上放行端口,你可以使用以下方法:4、错误解决:[rootlocalhost backup]# netcat -l -p 11111 netcat: cannot use -p and -l 装了netcat不能用5、能用telnet去测试吗6、效果: 1、准备…

STM32 PA15/JTDI 用作普通IO,烧录口不能使用问题解决

我们一般用SW调试接口 所以DEBUG选择Serial Wire 这样PA15可以用作普通IO使用。 工程中默认加上: PA13(JTMS/SWDIO).ModeSerial_Wire PA13(JTMS/SWDIO).SignalDEBUG_JTMS-SWDIO PA14(JTCK/SWCLK).ModeSerial_Wire PA14(JTCK/SWCLK).SignalDEBUG_JTCK-SWCLK

Flink---14、Flink SQL(SQL-Client准备、流处理中的表、时间属性、DDL)

星光下的赶路人star的个人主页 你生而真实,而非完美 文章目录 1、Flink SQL1.1 SQL-Client准备1.1.1 基于yarn-session模式1.1.2 常用配置 1.2 流处理中的表1.2.1 动态表和持续查询1.2.2 将流转换为动态表1.2.3 用SQL持续查询1.2.4 将动态表转换为流 1.3 时间属性1.…

Flink之窗口指派API模板

flink中窗口指派主要分为两类NoKeyed Windows和Keyed Windows,这里就结合这两类阐述窗口指派API NoKeyed Windows NoKeyed Windows同时又分为两类Porcessing Time和Event Time,即处理时间语义和事件时间语义. 事件时间语义// 事件时间语义-滚动窗口 source.windowAll(Tumbling…

什么是存储服务器?

随着互联网的发展,越来越多的信息会在网络上暴露,所以企业就会更加重视数据,因此更加安全可靠的数据存储服务器受到了大多数人的信赖,今天就让小编带大家了解一下什么是存储服务器吧! 存储服务器的含义。存储服务器是…

oracle connect by详解

1、作用: 用于存在父子,祖孙,上下级等层级关系的数据表进行层级查询。 2、语法 SELECT ... FROM .... START WITH cond1 CONNECT BY cond2 WHERE cond3;2.1、说明 start with: 指定起始节点的条件 connect by: 指定父子行的条件关系 …

如何在 Spring Boot 中实现容错机制

在 Spring Boot 中实现容错机制 容错机制是构建健壮和可靠的应用程序的重要组成部分。它可以帮助应用程序在面对异常或故障时保持稳定运行。Spring Boot提供了多种机制来实现容错,包括异常处理、断路器、重试和降级等。本文将介绍如何在Spring Boot中实现这些容错机…

c#设计模式-行为型模式 之 迭代器模式

🚀简介 提供一个对象来顺序访问聚合对象中的一系列数据,而不暴露聚合对象的内部表示。 迭代器模式主要包含以下角色: 抽象聚合(Aggregate)角色:定义存储、添加、删除聚合元素以及创建迭代器对象的接口…

Spring Boot项目在Windows上的自启动策略与Windows自动登录配置

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

微服务架构

注:引用自 http://t.csdnimg.cn/32eMo 近年来,随着云计算和容器技术的迅猛发展,微服务架构逐渐成为了业界的热门话题。本篇文章将着重介绍微服务架构的概念、特点以及与传统架构的对比,并深入探讨微服务架构的核心技术和实现方法。…

如何压缩视频?视频压缩变小方法汇总

视频是我们日常生活中不可或缺的一部分,但视频文件往往会占用大量存储空间,这在传输和分享过程中可能成为一个瓶颈。 为了解决这一问题,我们可以通过压缩的方式减小视频大小,视频压缩是指在保证视频质量的前提下,通过…

漏洞复现--鸿运主动安全监控云平台任意文件下载

免责声明: **文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何…

golang实现中文分词,scws,jieba

一、scws 1、安装 scws 官网以及文档 https://github.com/hightman/scws wget -q -O - http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2 | tar xjf -cd scws-1.2.3 ./configure --prefix/usr/local/scws --enable-shared make && make installLibraries hav…

Centos8 openjdk升级

1、卸载旧版本 sudo dnf remove java-1.8.0-openjdk 2、搜索新版本 yum search java-11-openjdk3、安装新版本 dnf install java-11-openjdk.x86_644、验证新版本 java -version