AI学习记录 - 最简单的专家模型 MOE
代码
import torch
import torch.nn as nn
import torch.nn.functional as F
from typing import Tupleclass BasicExpert(nn.Module):# 一个 Expert 可以是一个最简单的, linear 层即可# 也可以是 MLP 层# 也可以是 更复杂的 MLP 层(active function 设置为 swiglu)def __init__(self, feature_in, feature_out):super().__init__()self.linear = nn.Linear(feature_in, feature_out)def forward(self, x):return self.linear(x)class BasicMOE(nn.Module):# 创建了一个 BasicMOE 模型,输入特征维度为 6, 输出特征维度为 3, 专家数量为 2。def __init__(self, feature_in, feature_out, expert_number):super().__init__()self.experts = nn.ModuleList([BasicExpert(feature_in, feature_out) for _ in range(expert_number)])# gate 就是选一个 expert self.gate = nn.Linear(feature_in, expert_number)def forward(self, x):# 两个专家数量, expert_weight 就是两个数字expert_weight = self.gate(x) # shape 是 (batch, expert_number)print("expert_weight", expert_weight)expert_out_list = [expert(x).unsqueeze(1) for expert in self.experts] # 里面每一个元素的 shape 是: (batch, ) ??# concat 起来 (batch, expert_number, feature_out)# 每个专家输出的特征是3个维度expert_output = torch.cat(expert_out_list, dim=1)print("expert_output.size()", expert_output.size())print("expert_weight", expert_weight.size())expert_weight = expert_weight.unsqueeze(1) # (batch, 1, expert_nuber)print("expert_weight", expert_weight.size())# expert_weight * expert_out_listoutput = expert_weight @ expert_output # (batch, 1, feature_out)return output.squeeze()def test_basic_moe():x = torch.rand(2, 6)# x 是一个形状为 (2, 6) 的输入张量 (2 个样本, 每个样本 6 个特征)。# 创建了一个 BasicMOE 模型,输入特征维度为 6, 输出特征维度为 3, 专家数量为 2。basic_moe = BasicMOE(6, 3, 2)out = basic_moe(x)# 表示 2 个样本,2 个专家,每个专家输出 3 个特征。print(out)test_basic_moe()
代码对应的配图解释:
相关文章:

AI学习记录 - 最简单的专家模型 MOE
代码 import torch import torch.nn as nn import torch.nn.functional as F from typing import Tupleclass BasicExpert(nn.Module):# 一个 Expert 可以是一个最简单的, linear 层即可# 也可以是 MLP 层# 也可以是 更复杂的 MLP 层(active function 设…...

急停信号的含义
前言: 大家好,我是上位机马工,硕士毕业4年年入40万,目前在一家自动化公司担任软件经理,从事C#上位机软件开发8年以上!我们在开发C#的运动控制程序的时候,一个必要的步骤就是确认设备按钮的急停…...

单调队列queue
1.单调队列(Monotonic Queue) 单调队列是一种特殊的队列,它的元素按照单调性(递增或递减)的顺序排列。简单来说,单调队列会维护一个元素单调递增或递减的顺序,在队列中元素会根据当前队列的元素…...
【漫话机器学习系列】091.置信区间(Confidence Intervals)
置信区间(Confidence Intervals)详解 1. 引言 在统计学和数据分析中,我们通常希望通过样本数据来估计总体参数。然而,由于抽样的随机性,我们不可能得到精确的总体参数,而只能通过估计值(如均值…...
UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x99
UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x99 这个错误通常发生在你尝试使用 GBK 编码来解码一个包含非GBK编码字符的文件时。GBK 是一种用于简体中文的字符编码方式,它不支持所有可能的 Unicode 字符。 解决方法 明确文件的正确编码:首…...

DeepSeek应用——与word的配套使用
目录 一、效果展示 二、配置方法 三、使用方法 四、注意事项 1、永久化使用 2、宏被禁用 3、office的生成失败 记录自己学习应用DeepSeek的过程...... 这个是与WPS配套使用的过程,office的与这个类似: 一、效果展示 二、配置方法 1、在最上方的…...

递归乘法算法
文章目录 递归乘法题目链接题目详解解题思路:代码实现: 结语 欢迎大家阅读我的博客,给生活加点impetus!! 让我们进入《题海探骊》,感受算法之美!! 递归乘法 题目链接 在线OJ 题目…...

【免费】2004-2020年各省废气中废气中二氧化硫排放量数据
2004-2020年各省废气中废气中二氧化硫排放量数据 1、时间:2004-2020年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区、年份、废气中二氧化硫排放量(万吨) 4、范围:31省 5、指标说明:二氧化硫排放量指…...

CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测,光伏功率预测
代码地址:CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测,光伏功率预测 CNN-LSSVM卷积神经网络最小二乘支持向量机多变量多步预测,光伏功率预测 一、引言 1、研究背景和意义 光伏发电作为可再生能源的重要组成部分,近…...

【油猴脚本/Tampermonkey】DeepSeek 服务器繁忙无限重试(20250213优化)
目录 一、 引言 二、 逻辑 三、 源代码 四、 添加新脚本 五、 使用 六、 BUG 七、 优化日志 1.获取最后消息内容报错 一、 引言 deepseek每次第一次提问就正常,后面就开始繁忙了,有一点阴招全使我们身上。 greasyfork登不上,不知道…...

单调栈及相关题解
单调递增栈:栈中数据入栈单调递增序列(栈底到栈顶是单调递增); 单调递减栈:栈中数据入栈单调递减序列(栈底到栈顶是单调递减)。 单调递增栈: 维护单调递增栈:遍历数组中每一个元素,执行入栈:每次入栈前先…...
每日温度问题:如何高效解决?
给定一个整数数组 temperatures,表示每天的温度,要求返回一个数组 answer,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 问题分析 我们需要计算…...

#渗透测试#批量漏洞挖掘#致远互联AnalyticsCloud 分析云 任意文件读取
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...
统计安卓帧率和内存
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class AnalysisTool : MonoBehaviour { private void Awake() { DontDestroyOnLoad(gameObject); } public Text mmText; // 用于显示FPS的UI …...

大数据学习之PB级百战出行网约车二
21.订单监控_Redis工具类 package com . itbaizhan . utils ; import redis . clients . jedis . Jedis ; import redis . clients . jedis . JedisPool ; import redis . clients . jedis . JedisPoolConfig ; /** * 操作 redis 数据库 62 */ public class Redis…...

C语言第18节:自定义类型——联合和枚举
1. 联合体 C语言中的联合体(Union)是一种数据结构,它允许在同一内存位置存储不同类型的数据。不同于结构体(struct),结构体的成员各自占有独立的内存空间,而联合体的所有成员共享同一块内存区域…...
C++病毒(^_^|)(2)
第二期 声明: 仅供损害电脑,不得用于非法。损坏电脑,作者一律不负责。此作为作者原创,转载请经过同意。 直接上代码 #include <bits/stdc.h> #include <windows.h> using namespace std; HHOOK g_hHook;void lrud(…...

在vscode中拉取gitee里的项目并运行
拉取项目: 方法一:vscode点击查看--->终端(或者直接通过快捷键ctrol+ `打开) 在终端内通过cd命令定位到你想存放项目的文件夹 例如:cd h: 通过命令:git clone 地址 例如:git clone newbee-mall-vue-app: 前端代码 等待拉取完成即可在对应文件夹下看到项目啦 方…...
centos7 防火墙开放指定端口
在 CentOS 7 中,默认的防火墙管理工具是 firewalld。如果你想开放一个特定的端口,以便允许外部访问,可以通过以下步骤实现: 安装 firewalld 如果你的系统上还没有安装 firewalld,你可以通过以下命令安装: …...
Day42(补)【AI思考】-编译过程中语法分析及递归子程序分析法的系统性解析
文章目录 编译过程中语法分析及递归子程序分析法的系统性解析**一、总览:编译流程中的语法分析****1. 编译过程核心步骤** **二、语法分析的核心任务****1. 核心目标****2. 现实类比** **三、递归子程序分析法的本质****1. 方法分类****2. 递归子程序分析法的运作原…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...

springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

[论文阅读]TrustRAG: Enhancing Robustness and Trustworthiness in RAG
TrustRAG: Enhancing Robustness and Trustworthiness in RAG [2501.00879] TrustRAG: Enhancing Robustness and Trustworthiness in Retrieval-Augmented Generation 代码:HuichiZhou/TrustRAG: Code for "TrustRAG: Enhancing Robustness and Trustworthin…...