等变和不变 、向量神经元(vector neurons)是什么?

等变和不变 

等变:如果输入是一个旋转后的椅子,那么输出也应该是一个旋转后的椅子

不变:如果输入是一个旋转后的椅子,那么输出应该是一个椅子,而不是一只狗。

向量神经元(vector neurons)

向量神经元(Vector Neurons)是一种在神经网络模型中处理向量数据的神经元设计,特别适用于处理具有空间结构的数据,如3D几何形状或方向信息。这种设计与传统的标量神经元不同,后者通常处理单一数值数据(即标量)。向量神经元能够直接处理和保留数据的向量性质,如方向和大小,这使得它们在处理空间数据时更为有效和自然

向量神经元的pytorch实现方式是什么样的?给出它与普通神经元的代码实现上的区别?

普通神经元的PyTorch实现

普通神经元通常在全连接层(nn.Linear)中实现,接受输入向量(或批量输入矩阵),并输出另一个向量(或矩阵)。

import torch
import torch.nn as nn# 定义一个简单的全连接层
class SimpleLinearLayer(nn.Module):def __init__(self, input_dim, output_dim):super(SimpleLinearLayer, self).__init__()self.linear = nn.Linear(input_dim, output_dim)def forward(self, x):return self.linear(x)# 示例使用
input_dim = 5
output_dim = 3
model = SimpleLinearLayer(input_dim, output_dim)
x = torch.rand(10, input_dim)  # 一个批量大小为10的输入
output = model(x)

 

向量神经元的PyTorch实现

向量神经元的实现需要考虑如何在层级操作中保持向量的空间属性。下面的代码示例展示了一个可能的向量神经元实现方法,其中包含了对输入向量进行旋转操作的示例,以体现如何处理向量数据。

class VectorNeuronLayer(nn.Module):def __init__(self, input_dim, output_dim):super(VectorNeuronLayer, self).__init__()# 假设输入和输出的每个维度都是3D向量self.weight = nn.Parameter(torch.randn(output_dim, input_dim, 3, 3))self.bias = nn.Parameter(torch.randn(output_dim, 3))def forward(self, x):# x的形状假设为(batch_size, input_dim, 3) 表示一批3D向量# 应用向量变换,这里简化为矩阵乘法和加偏置output = torch.einsum('bij,ajk->bak', x, self.weight) + self.biasreturn output# 示例使用
input_dim = 5
output_dim = 3
model = VectorNeuronLayer(input_dim, output_dim)
x = torch.rand(10, input_dim, 3)  # 每个输入是一个3D向量
output = model(x)

主要区别

  • 数据结构:普通神经元的输入和输出通常是标量值的集合,而向量神经元处理的是向量
  • 操作:在向量神经元中,操作需要保持向量的空间属性,例如通过矩阵乘法来实现旋转或其他变换,而普通神经元的操作主要是线性变换加上非线性激活。
  • 参数:向量神经元层的权重参数是一个四维张量(在上述示例中),而不是普通神经元的二维权重矩阵。

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

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

相关文章

如何监控摄像头是否在线?有什么工具推荐

WGCLOUD监控系统 我们项目中,摄像头用的WGCLOUD监控系统来监控的,主要两种方式来监控 一种是监控摄像头的端口,使用WGCLOUD的端口监控模块 一种是PING摄像头的IP,使用WGCLOUD的ping监测模块 这两种方式比较简单,也…

1997-2022年中央对各省份一般公共预算转移支付数据

1997-2022年中央对各省份一般公共预算转移支付数据 1、时间:1997-2022年 2、范围:31省 3、指标:一般公共预算转移支付 4、来源:wind 财政部 5、指标解释:一般性转移支付又称体制性转移支付,是指上级政…

C++ 新特性 lamada表达式

本篇文章来介绍一下lamada表达式吧 lamada表达式相信大家已经很熟悉了 这里再总结一下 1.lamada表达式语法: [capture-list] (parameter-list) -> return-type { body } capture-list:捕获列表,用于指定在lambda函数体中可访问的外部变量。paramete…

【2024.2.4练习】国王游戏

题目描述 题目思路 涉及排列组合求最优解问题,数据大考虑是否满足某种贪心策略。 假设不除以右手的数字,那么获得金币数量最多的显然为最后一个人。左手数字最大的应排在最后一位。在右手有数字的情况下,不妨也尝试从最后一个人开始排。 假…

Element UI+Spring Boot进行CRUD的实例

ElementUI安装与使用指南 前端代码:点击查看learnelementuispringboot项目源码 后端代码:点击查看 LearnElementUiAndSpringBoot 一、前端配置 安装axios axios官网axios中文文档安装指令:npm install axios 二、后端配置 springboot3m…

BLIP2——采用Q-Former融合视觉语义与LLM能力的方法

BLIP2——采用Q-Former融合视觉语义与LLM能力的方法 FesianXu 20240202 at Baidu Search Team 前言 大规模语言模型(Large Language Model,LLM)是当前的当红炸子鸡,展现出了强大的逻辑推理,语义理解能力,而视觉作为人…

YOLOv8进阶 | 如何用yolov8训练自己的数据集(以安全帽佩戴检测举例)

前言:Hello大家好,我是小哥谈。YOLOv8是一种目标检测算法,它是YOLO(You Only Look Once)系列算法的最新版本。本节课就带领大家如何基于YOLOv8来训练自己的目标检测模型,本次作者就以安全帽佩戴检测为案例进…

华为机考入门python3--(7)牛客7-取近似值

分类:数字 知识点: str转float float(str) 向上取整 math.ceil(float_num) 向下取整 math.floor(float_num) 题目来自【牛客】 import math def round_to_int(float_num): # 如果小数点后的数值大于等于0.5,则向上取整&#xf…

虚拟机克隆的三种方式:全量克隆、快速全量克隆、链接克隆

虚拟机克隆的三种方式:全量克隆、快速全量克隆、链接克隆 快速全量克隆 特点:虚拟机启动快、拍平后数据独立 场景:快速发放独立的虚拟机,减少等待虚拟机部署完成时间,能够快速提供用户使用虚拟机。 实现方式:通过对…

Fink CDC数据同步(一)环境部署

1 背景介绍 Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink 能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。 Flink CDC 是 Apache Flink 的一组源连接器,基于数据库日志的…

【SpringBoot】RBAC权限控制

📝个页人主:五敷有你 🔥系列专栏:SpringBoot⛺️稳重求进,晒太阳 权限系统与RBAC模型 权限 为了解决用户和资源的操作关系, 让指定的用户,只能操作指定的资源。 权限功能 菜单权限&a…

windows下安装go

下载golang Go 官网下载地址: https://golang.org/dl/ Go 官方镜像站(推荐): https://golang.google.cn/dl/ 选择安装包 验证有没有安装成功 查看 go 环境 说明 : Go1.11 版本之后无需手动配置环境变量&#xff0c…

29 python快速上手

Python操作MySQL和实战 1. 事务1.1 MySQL客户端1.2 Python代码 2. 锁2.1 排它锁2.2 共享锁 3. 数据库连接池4. SQL工具类4.1 单例和方法4.2 上下文管理 5.其他总结 目标:掌握事务和锁以及Python操作MySQL的各种开发必备知识。 概要: 事务锁数据库连接池…

Weblogic反序列化漏洞分析之CVE-2021-2394

目录 简介 前置知识 Serializable示例 Externalizable示例 联系weblogic ExternalizableLite接口 ExternalizableHelperl类 JdbcRowSetImpl类 MethodAttributeAccessor类 AbstractExtractor类 FilterExtractor类 TopNAggregator$PartialResult类 SortedBag$Wrappe…

【测试运维】web自动化全知识点笔记第1篇:什么是Web自动化测试(已分享,附代码)

本系列文章md笔记(已分享)主要讨论Web自动化测试相关知识。了解什么是自动化,理解什么是自动化测试以及为什么要使用自动化测试。具体包含:WebDriver的基本操作,WebDriver的鼠标、键盘操作,下拉选择框、警告…

SpringBoot RestTemplate 上传文件

SpringBoot RestTemplate 上传文件 Testpublic void testUpload() throws Exception {String url "http://127.0.0.1/file/upload";String filePath "C:\\temp\\1.png";RestTemplate rest new RestTemplate();FileSystemResource resource new FileSys…

【教学类-46-01】吉祥字门贴1.0(华光通心圆_CNKI 文本框 空心字涂色,最好繁体字)

作品展示 背景需求: 马上就要过年了,家家户户大门上贴上对联和福字 我想用正方形红色手工纸(15CM)也做一个幼儿描线版的福字 问题一:福字顺时针旋转45度 打印纸上制作福字,需要让这个字顺时针旋转45度&am…

C语言:简单排序

题目描述 输入11个整数,如果第1个数为1,则将其中的第2至11个数升序排列;如果第1个数为0,则降序排列。 输入格式 输入一行,包含11个整数,用空格符分隔。 输出格式 输出1行,包含10个顺序排列的整…

Qt程序设计-使用QSplashScreen制作开机界面

目录 QSplashScreen简介 实例演示 QSplashScreen简介 在Qt中,QSplashScreen类就是用来创建启动画面的。它是一个窗口类,可以显示一个图片,并在图片上显示一些文本信息。QSplashScreen类提供了一些方法,可以方便地设置启动画面的图片和文本,以及控制启动画面的显示和隐藏…

【C++栈和队列:数据结构中的经典组合,高效处理先进先出与后进先出问题的最佳方案】

[本节目标] 1. stack的介绍和使用 2. queue的介绍和使用 3. priority_queue的介绍和使用 4. 容器适配器 1. stack的介绍和使用 1.1 stack的介绍 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的…