深度学习中的一些函数

news2024/9/22 8:23:29

目录

  • nn.Embedding
  • triu 函数
  • copy.deepcopy

在这里插入图片描述

nn.Embedding

#参数1:词表大小(即词表单词个数)即只要输入的值在0——n-1之间就可,对于序列长度无影响。
#参数2:词映射的维度n(即将每个词映射成一个二维1*n)
input = pair_tensor[0][0]#一个词所对应的张量中的一个元素
print(pair_tensor)
print(input)
embedding=nn.Embedding(20,3)
output1 = embedding(input)#此处只要是张量即可,此时仅对一个含有一个元素的一维张量进行
output2= embedding(input).view(1, 1, -1)#变为三维1*1*n
print(output1)#输出为input元素个数*3的张量
print(output2)
print(output1.shape,output2.shape)

在这里插入图片描述

input1=torch.LongTensor([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
output3=embedding(input1)
print(output3)

在这里插入图片描述
在这里插入图片描述

triu 函数

矩阵运算中非常常见的操作,用于提取或构建一个矩阵的上三角部分。上三角部分是指矩阵的主对角线及其上方的元素(对于每行来说,即在主对角线右侧的元素)。triu 是 “triangular upper” 的缩写,意味着"上三角"。

  1. 基本概念
    上三角矩阵:一个矩阵的上三角部分是指包括主对角线及其上方的元素的部分。对于一个矩阵 A,如果 A[i, j] 在上三角部分,那么 i ≤ j。
    主对角线:矩阵的主对角线指的是从左上角到右下角的对角线,即满足 i == j 的元素
  2. numpy.triu 函数(torch.triu 函数同)
    在 NumPy 中,triu 函数用于生成矩阵的上三角部分。它的函数签名如下:

numpy.triu(m, k=0) 参数:

  • m:输入矩阵,可以是一个二维数组。
  • k:整数,控制对角线的偏移量。默认值为 0,表示从主对角线开始(即主对角线以下为0,加偏移一样)。如果 k > 0,则偏移 k行上方的对角线;如果 k < 0,则偏移 k 行下方的对角线。
  • 返回值:返回一个与 m具有相同形状的数组,其中所有在上三角之外的元素都被设置为 0。

示例:

>>> np.triu([[1,2,3],[4,5,6],[7,8,9],[10,11,12]], k=-1)
array([[ 1, 2, 3],
 [ 4, 5, 6],
 [ 0, 8, 9],
 [ 0, 0, 12]])
>>> np.triu([[1,2,3],[4,5,6],[7,8,9],[10,11,12]], k=0)
array([[ 1, 2, 3],
 [ 0, 5, 6],
 [ 0, 0, 9],
 [ 0, 0, 0]])
>>> np.triu([[1,2,3],[4,5,6],[7,8,9],[10,11,12]], k=1)
array([[ 0, 2, 3],
 [ 0, 0, 6],
 [ 0, 0, 0],
 [ 0, 0, 0]])

copy.deepcopy

  1. 深拷贝 (deepcopy)
    copy.deepcopy: 这是 Python 标准库 copy 模块中的一个函数,用于创建对象的深拷贝。
  • 深拷贝: 深拷贝会递归地复制对象及其内部所有对象,而不仅仅是复制对象的引用。这样,原对象和复制对象在内存中是完全独立的修改一个对象不会影响另一个对象。
  • 浅拷贝: 与之相对的是浅拷贝(copy.copy),它只复制对象本身,不复制嵌套的对象。
  1. 代码解释
    c = copy.deepcopy: 这一行代码将 copy.deepcopy 函数赋值给变量 c。
    这样,c 现在是一个指向 deepcopy 函数的快捷方式。使用时可以简化调用,如将 copy.deepcopy(obj) 改为 c(obj)。
  2. 什么时候使用深拷贝?
    深拷贝在以下情况非常有用:
  • 需要完全独立的对象:

当你需要确保新对象和原对象完全独立,没有共享的子对象时。

  • 对象包含嵌套的可变对象:

当对象中包含复杂的嵌套结构(如列表、字典)时,深拷贝会递归地复制这些嵌套对象。

  • 避免意外修改:

在某些场景下,如果多个对象共享子对象,可能会引起意外的修改(因为这些子对象是共享的)。深拷贝可以防止这种情况。

示例

import copy

# 使用深拷贝创建一个独立的副本
original = [1, [2, 3], 4]
c = copy.deepcopy
copied = c(original)

# 修改副本,不影响原对象
copied[1][0] = 'changed'

print(original)  # 输出: [1, [2, 3], 4]
print(copied)    # 输出: [1, ['changed', 3], 4]

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

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

相关文章

文字短信怎么利用Python接口发送短信

在信息爆炸的今天&#xff0c;沟通成为了我们日常生活和工作中不可或缺的一部分。无论是企业运营、市场营销&#xff0c;还是个人交流、节日祝福&#xff0c;如何快速、准确地传递信息成为了许多人关注的焦点。群发短信&#xff0c;作为一种高效、经济的沟通方式&#xff0c;正…

一个prolog最简单推理示例

假设现在知道一些年轻人&#xff0c;谁喜欢谁&#xff0c;定义为love(x, y)&#xff1b; 定义了一些这样的关系&#xff1b; 如果x喜欢y&#xff0c;y也喜欢x&#xff0c;则定义他们是一对情侣&#xff1b; 规则表示为&#xff1a; lovers(X,Y) :- love(X,Y), love(Y,X). 输入…

Python | Leetcode Python题解之第376题摆动序列

题目&#xff1a; 题解&#xff1a; class Solution:def wiggleMaxLength(self, nums: List[int]) -> int:n len(nums)if n < 2:return nprevdiff nums[1] - nums[0]ret (2 if prevdiff ! 0 else 1)for i in range(2, n):diff nums[i] - nums[i - 1]if (diff > 0…

Java 5.1 - Spring

Spring 基础 什么是 Spring 框架&#xff1f; 开源的 轻量级的 Java 开发框架&#xff0c;旨在提高开发效率和系统可维护性。 一般我们说 Spring 都是指 Spring FrameWork&#xff0c;它是很多模块的集合&#xff0c;使用这些模块可以很方便地帮助我们进行 Java 开发。例如 …

监控电脑屏幕的软件叫什么?8款好用的监控电脑屏幕的软件推荐!

远程办公和数字化管理的风潮席卷而来&#xff0c;电脑屏幕监控软件已经悄然成为了企业和家庭不可或缺的得力助手。 这些神奇的小工具&#xff0c;不仅能让老板们远程监督员工的工作状态&#xff0c;确保团队高效运转&#xff0c;还能守护企业的信息安全。 接下来&#xff0c;…

JavaEE-传输层协议

目录 一、UDP协议 二、TCP协议 TCP报文结构 TCP十大核心机制 确认应答 超时重传 接收缓冲区 连接管理 建立连接 断开连接 一、UDP协议 学习一个网络协议首先要学习报文结构。 对于UDP协议来说&#xff0c;应用层数据到达UDP后就会给应用层数据加上UDP报头。 &#…

STM32G474的HAL_ADC_Start_DMA()传递指针问题

1、HAL_ADC_Start_DMA()传递指针问题 函数传递参数中若用到指针&#xff0c;则要注意指针的类型和源数据数据类型要保持一致&#xff0c;否则&#xff0c;会导致内存溢出。 STM32G474的ADC值是12位&#xff0c;HAL库用的是32位指针传输数据&#xff0c;因此&#xff0c;在定义保…

深度学习入门-09

基于小土堆学习 1、卷积层 卷积操作涉及到一个称为“卷积核”或“滤波器”的小窗口&#xff0c;在输入数据上滑动&#xff0c;并对每个位置上的数据进行加权求和&#xff0c;可能还会加上一个偏置项。这个加权求和的结果就构成了输出特征图&#xff08;feature map&#xff0…

SS-31;Elamipretide;伊拉米肽;线粒体靶向抗氧化剂SS-31肽;CAS:736992-21-5

【SS-31 简介】 SS-31肽是一种心磷脂过氧化物酶抑制剂和线粒体靶向肽。 它可以改善左心室和线粒体功能。SS-31肽可减轻 人小梁网状细胞中的线粒体功能障碍和氧化损伤。它可以防止iHTM和GTM(3)细胞受到H2O2诱导的持续氧化应激。慢性心力衰竭和线粒体肌病的I期临床试验正在进行中…

EPLAN中绘制多线原理图以及插入符号元件

EPLAN中绘制多线原理图以及插入符号元件 如下图所示&#xff0c;新建并打开多线原理图&#xff0c;点击菜单栏中的插入—电位连接点&#xff0c; 插入所需的电位连接点&#xff1b; 如下图所示&#xff0c;点击项目数据—符号&#xff0c;这样可以打开符号选择的导航器&#…

07 - procfs

---- 整理自 王利涛老师 课程 实验环境&#xff1a;宅学部落 www.zhaixue.cc 文章目录 1. procfs 快速入门2. procfs 文件创建的回调机制3. 在 proc 目录下创建子目录4. 通过 proc 接口修改内核变量5. 通过 proc 接口访问数组6. 序列文件&#xff1a;seq_file 编程接口7. seq_f…

Hbase离线迁移

假设是hbase集群&#xff0c;那么数据存储在hdfs上。 1.关闭2个hbase 2.使用distcp 将hdfs上的hbase数据迁移到另一个【相同路径】的hdfs上。 不知道目录的话&#xff0c;可以find / -name hbase-site.xml找一下。 hadoop distcp -Dmapreduce.job.hdfs-servers.token-renew…

XtQuant接口概述,想用miniQMT做量化哪家券商支持?

XtQuant.XtData 行情模块 xtdata是xtquant库中提供行情相关数据的模块&#xff0c;本模块旨在提供精简直接的数据满足量化交易者的数据需求&#xff0c;作为python库的形式可以被灵活添加到各种策略脚本中。 主要提供行情数据&#xff08;历史和实时的K线和分笔&#xff09;、…

无人机喊话器详解!!!

无人机喊话器&#xff0c;也被称为无人机扬声器&#xff0c;是一种安装在无人机上&#xff0c;用于通过空中向地面人员传递声音的设备。 一、功能特点 远程传递声音&#xff1a;无人机喊话器能够在较远的距离内清晰地传递声音&#xff0c;有效广播范围通常可达数百米甚至更远…

Linux下单网卡配置多个路由ip方法

Linux下配置网卡ip别名何谓ip别名 用windows的话说&#xff0c;就是为一个网卡配置多个ip。 什么场合增加ip别名能派上用场&#xff1f; 布网需要、多ip访问测试、特定软件对多ip的需要 下面通过几个例子简单介绍一下如何使用ifconfig命令给网卡配置ip别名。 一、首先为服务器…

会员通知短信怎么利用NodeJS发送短信

会员通知群发短信以其即时高效、高打开率、个性化定制、成本效益高、跨平台兼容以及法律合规等优势&#xff0c;在现代会员管理和营销策略中占据了重要地位。对于希望提升会员沟通效率、增强用户粘性和促进业务增长的企业而言&#xff0c;合理利用群发短信工具无疑是一个明智的…

left join 使用 sum()

一&#xff0c;表结构 表一&#xff0c;test_group 分组表 表二&#xff0c;test_user 用户表 test_group 和 test_user 是一对多的关系 二&#xff0c;sql 统计一班的总得分和所有用户的总年龄 SELECT SUM(a.score),SUM(b.age),a.groupname from test_group a LEFT JOIN…

Keepalived高可用配置服务器集群

前言 上章完成了通过nginx对服务器配置了负载均衡,保证了一个服务器宕机另一个服务器顶上,但是有一个问题出现了,如果nginx宕机了怎么办,这章会对这个问题进行讲解,配置集群来保证nginx宕机下一个顶上来,服务器一直能提供服务当一台服务器宕机的时候把从服务器切换为主,提供虚…

【机器人学】7-3.六自由度机器人自干涉检测-圆柱体的旋转变换【附MATLAB代码】

前言 上一章确定了机械臂等效的圆柱体的上下圆心坐标&#xff0c;这篇文章将解决算法三个核心中的第二个核心&#xff1a; 一 根据机械臂的几何数据以及DH参数&#xff0c;确定机械臂等效的圆柱体的上下圆心坐标。 二 将一个圆柱体旋转到与坐标Z轴对齐&#xff0c;另一个圆柱…

华为机考笔试没有结果?

点击上方"互联网求职达人"&#xff0c;选择"设为置顶or星标" 第一时间获取最实用的求职以及备考信息 华为机考笔试范围是什么&#xff1f;​https://mp.weixin.qq.com/s?__bizMzU2NjE0NjMxNg&mid2247483962&idx1&sn69b0b152dd8e7ebe9ddb356b…