🧠 神经网络基础:从单个神经元到多层网络(superior哥AI系列第3期)

哈喽!各位AI探索者们!👋 上期我们把数学"怪兽"给驯服了,是不是感觉还挺轻松的?今天我们要进入更刺激的环节——揭开神经网络的神秘面纱!🎭

很多人觉得神经网络很高深,其实它就像乐高积木一样,从最简单的"神经元"开始,一层层搭建起来。今天superior哥就带你从零开始,看看这个模仿大脑的"人工智能"是怎么工作的!🧩

🤔 为什么叫"神经"网络?跟我们的大脑有啥关系?

想象一下,你的大脑里有1000亿个神经元在疯狂工作!🤯 每当你看到一只猫咪时:

  1. 👁️ 眼睛接收光信号
  2. ⚡ 视神经把信号传给大脑
  3. 🧠 各种神经元层层处理:边缘检测→形状识别→特征组合
  4. 💡 最后"叮"一声:“这是只猫!”

人工神经网络就是受这个过程启发,试图模仿大脑的工作方式。当然,现在的AI比我们的大脑还差得远,但已经足够做很多厉害的事情了!

🔍 单个神经元:神经网络的"乐高积木"

神经元的四大组件

想象一个神经元就是一个超级聪明的小决策者,它有四个关键部分:

  1. 📥 输入端口:接收来自外界或其他神经元的信息
  2. ⚖️ 权重系统:决定每个输入有多重要
  3. 🧮 计算中心:把所有输入加权求和
  4. 🚀 激活器:根据计算结果决定是否"兴奋"并输出信号

🏃‍♂️ 生活例子:要不要去跑步的神经元

让我们用一个接地气的例子来理解神经元是怎么工作的:

设定场景: 你的大脑里有个专门负责"决定是否去跑步"的神经元🏃‍♂️

三个输入因素:

  • 🌤️ 天气情况(输入1)
  • ⏰ 可用时间(输入2)
  • 💪 身体状态(输入3)

权重设置(重要性排序):

  • 天气权重 = 0.3(有点重要)
  • 时间权重 = 0.5(比较重要)
  • 身体权重 = 0.8(最重要!)

今天的具体情况:

  • 天气不错:打分 0.7
  • 时间充足:打分 0.9
  • 有点累:打分 0.4

神经元开始计算:

总分 = 0.7×0.3 + 0.9×0.5 + 0.4×0.8= 0.21 + 0.45 + 0.32 = 0.98

激活函数判断: 如果总分 > 0.5,就去跑步!
结果:0.98 > 0.5 ✅ → 决定:去跑步!

这就是一个神经元的完整工作流程!🎉

🎛️ 激活函数:神经元的"性格设定"

如果神经网络只会简单的加减乘除,那它就是个高级计算器,没啥智能可言。激活函数就是给神经元装上"性格"的关键!

常见的激活函数"性格"类型:

🎚️ Sigmoid:优雅的淑女型
  • 特点:输出永远在0到1之间,像个温和的淑女
  • 性格:不管输入多极端,输出都很"温柔"
  • 生活类比:就像一个很有修养的人,不管多生气也不会大发雷霆
⚡ ReLU:简单粗暴型
  • 特点:负数直接砍成0,正数原样保留
  • 性格:非黑即白,要么不响应,要么全力响应
  • 生活类比:像个直性子的东北大哥,“行就是行,不行就拉倒!”
🎭 Tanh:情绪丰富型
  • 特点:输出在-1到1之间,可以表达"负面情绪"
  • 性格:比Sigmoid更有表现力,能表达"不喜欢"
  • 生活类比:像个情感丰富的艺术家,爱憎分明

在实际项目中,ReLU是最受欢迎的"员工"——简单粗暴但效果好!💪

🏗️ 从单个神经元到神经网络:搭建AI"大脑"

单个神经元就像一个只会做简单判断的小朋友,但当我们把很多个这样的"小朋友"组织起来,就能形成超强的团队!

🏢 神经网络的"公司架构"

想象神经网络就是一家有层级的公司:

  1. 📨 输入层(前台):接收原始数据,就像公司前台接待客户
  2. 🏭 隐藏层(各部门):处理信息的中间层,可以有很多层
  3. 📋 输出层(管理层):做最终决策
  4. 输出层:产生最终结果

🎯 一个具体例子:识别手写数字的神经网络

让我们用识别手写数字(0-9)的例子来看看多层网络是怎么工作的:

输入层: 784个神经元(28×28像素的图片)

  • 每个像素的灰度值(0-255)

隐藏层1: 128个神经元

  • 学习识别边缘、线条等基本特征

隐藏层2: 64个神经元

  • 组合基本特征,识别数字的局部形状

输出层: 10个神经元

  • 分别对应数字0-9的概率

🔄 前向传播:信息在网络中的"接力赛"

前向传播就像一场信息传递的接力赛!🏃‍♂️➡️🏃‍♀️➡️🏃‍♂️

🎮 用游戏的方式理解前向传播

想象你在玩一个"传话游戏":

  1. 第一棒(输入层):小明看到一张猫的照片,描述给小红:“我看到毛茸茸的东西,有尖耳朵…”

  2. 第二棒(隐藏层1):小红听了小明的描述,加上自己的理解,告诉小刚:“听起来像是小动物,可能有四条腿…”

  3. 第三棒(隐藏层2):小刚综合前面的信息,告诉小李:“应该是宠物,很可能是猫或狗…”

  4. 最后一棒(输出层):小李做最终判断:“80%确定是猫!”

这就是前向传播的过程!每一层都在前一层的基础上,添加自己的"理解"和"判断"!

⚡ 数学版本(别怕,很简单!)

# 前向传播的简化版本
def forward_pass(input_data):# 第一层:输入 × 权重 + 偏置,然后激活layer1_output = activate(input_data × weights1 + bias1)# 第二层:第一层输出 × 权重 + 偏置,然后激活  layer2_output = activate(layer1_output × weights2 + bias2)# 输出层:最终预测final_output = activate(layer2_output × weights_final + bias_final)return final_output

就像流水线一样:原材料→半成品→成品!🏭

🔙 反向传播:神经网络的"反思"机制

🎯 篮球教练的智慧

想象你在学投篮🏀:

  1. 你投篮 → 球偏左了
  2. 教练分析 → “手腕角度有问题”
  3. 你调整 → 下次投篮时调整手腕
  4. 再次投篮 → 更准了!

反向传播就是神经网络的"教练"!它告诉每个神经元怎么调整,让整个网络表现更好。

🧠 反向传播的工作流程

  1. 🎯 前向预测:网络给出预测结果
  2. 😱 发现错误:计算预测与真实答案的差距
  3. 🔍 分析责任:找出每个神经元对错误的"贡献"
  4. 🔧 调整权重:让每个神经元都变得"更聪明"
  5. 🔄 重复练习:千万次训练后,网络变成专家!

📊 梯度下降:找到最佳"配方"

还记得我们之前说的"做菜找最佳配方"的例子吗?🍳

神经网络训练就像调配一道菜:

  • 权重 = 各种调料的用量
  • 损失函数 = 菜的"难吃程度"
  • 梯度 = 每种调料应该增加还是减少
  • 学习率 = 每次调整的幅度
# 梯度下降的伪代码
while 菜还不够好吃:尝一口菜,计算难吃程度for 每种调料:if 增加这种调料能让菜更好吃:增加一点点这种调料else:减少一点点这种调料重新做菜,再尝一口

经过成千上万次的调整,AI大厨就能做出完美的菜了!👨‍🍳✨

🛠️ 实战时间:搭建你的第一个"AI大脑"

准备好了吗?现在我们要动手搭建一个真正的神经网络!🔨 这个网络的任务是预测一个人是否会喜欢某部电影。

🎬 我们的任务:AI电影推荐专家

输入特征:

  • 🎯 动作场景多少(0-10分)
  • 💕 浪漫元素多少(0-10分)
  • 😂 喜剧元素多少(0-10分)

输出结果:

  • 📊 这个人喜欢这部电影的概率(0-1之间)

💻 代码实现:从零开始的神经网络

import numpy as np
import matplotlib.pyplot as pltclass MovieRecommenderAI:"""电影推荐AI - 你的第一个神经网络!"""def __init__(self):print("🤖 正在初始化AI大脑...")# 随机初始化权重(给AI一个"婴儿大脑")self.weights_input_hidden = np.random.rand(3, 4)  # 3个输入 → 4个隐藏神经元self.weights_hidden_output = np.random.rand(4, 1)  # 4个隐藏 → 1个输出# 偏置(每个神经元的"个性")self.bias_hidden = np.random.rand(1, 4)self.bias_output = np.random.rand(1, 1)print("✅ AI大脑初始化完成!")def sigmoid(self, x):"""Sigmoid激活函数 - 给神经元装上'优雅淑女'性格"""return 1 / (1 + np.exp(-np.clip(x, -250, 250)))  # 防止数值溢出def sigmoid_derivative(self, x):"""Sigmoid的导数 - 用于反向传播的魔法"""return x * (1 - x)def forward_think(self, movie_features):"""前向传播 - AI的思考过程"""print(f"🧠 AI正在分析电影特征: {movie_features}")# 第一层思考:从基础特征到抽象概念self.hidden_input = np.dot(movie_features, self.weights_input_hidden) + self.bias_hiddenself.hidden_output = self.sigmoid(self.hidden_input)print(f"💭 隐藏层思考结果: {self.hidden_output.round(3)}")# 第二层思考:做出最终决策self.output_input = np.dot(self.hidden_output, self.weights_hidden_output) + self.bias_outputself.predicted_preference = self.sigmoid(self.output_input)print(f"🎯 AI预测喜好度: {self.predicted_preference[0][0]:.3f}")return self.predicted_preferencedef learn_from_mistake(self, movie_features, actual_preference, learning_rate=0.5):"""反向传播 - AI从错误中学习"""# 前向思考predicted = self.forward_think(movie_features)# 计算错误程度error = actual_preference - predictedprint(f"😅 预测误差: {error[0][0]:.3f}")if abs(error[0][0]) < 0.01:print("🎉 预测很准确,AI很开心!")else:print("🤔 AI在反思哪里出错了...")# 反向传播:调整权重# 输出层的调整output_delta = error * self.sigmoid_derivative(predicted)hidden_error = output_delta.dot(self.weights_hidden_output.T)hidden_delta = hidden_error * self.sigmoid_derivative(self.hidden_output)# 更新权重(AI变聪明的过程)self.weights_hidden_output += self.hidden_output.T.dot(output_delta) * learning_rateself.weights_input_hidden += movie_features.T.dot(hidden_delta) * learning_rateself.bias_output += np.sum(output_delta, axis=0, keepdims=True) * learning_rateself.bias_hidden += np.sum(hidden_delta, axis=0, keepdims=True) * learning_rateprint("🧠 AI大脑已更新,变得更聪明了!")return abs(error[0][0])def train_ai_brain(self, training_data, training_labels, epochs=1000):"""训练AI大脑 - 让AI变成电影专家"""print(f"📚 开始训练AI,准备学习 {epochs} 轮...")errors = []for epoch in range(epochs):total_error = 0# 让AI看每一个训练样本for i in range(len(training_data)):error = self.learn_from_mistake(training_data[i:i+1], training_labels[i:i+1])total_error += erroravg_error = total_error / len(training_data)errors.append(avg_error)# 每100轮汇报一次进度if epoch % 100 == 0:print(f"📈 第 {epoch} 轮训练,平均误差: {avg_error:.4f}")print("🎓 AI训练完成,现在是电影专家了!")return errorsdef recommend_movie(self, movie_features):"""给用户推荐电影"""preference = self.forward_think(movie_features)if preference[0][0] > 0.7:return f"🎬 强烈推荐!AI认为你有 {preference[0][0]*100:.1f}% 的概率会喜欢这部电影!"elif preference[0][0] > 0.5:return f"👍 还不错!AI认为你有 {preference[0][0]*100:.1f}% 的概率会喜欢。"else:return f"😐 可能不太适合你,只有 {preference[0][0]*100:.1f}% 的概率会喜欢。"# 创建我们的AI电影专家
print("🎬 欢迎来到AI电影推荐系统!")
ai_critic = MovieRecommenderAI()# 准备训练数据(已知某个人的电影偏好)
print("\n📊 准备训练数据...")
training_movies = np.array([[8, 2, 4],  # 动作片:《速度与激情》[2, 9, 3],  # 爱情片:《泰坦尼克号》[5, 5, 8],  # 喜剧片:《憨豆先生》[9, 1, 2],  # 纯动作:《敢死队》[1, 8, 1],  # 纯爱情:《恋恋笔记本》[3, 3, 9],  # 纯喜剧:《大话西游》[7, 6, 5],  # 综合片:《钢铁侠》[0, 2, 1]   # 无聊片:《文艺片》
])# 这个人的真实喜好(喜欢动作和喜剧,不喜欢纯爱情)
true_preferences = np.array([[0.9],  # 喜欢动作片[0.2],  # 不喜欢爱情片[0.8],  # 喜欢喜剧片[0.95], # 超喜欢纯动作[0.1],  # 不喜欢纯爱情[0.85], # 喜欢纯喜剧[0.75], # 喜欢综合片[0.05]  # 讨厌无聊片
])# 开始训练AI
print("\n🎓 开始训练AI大脑...")
training_errors = ai_critic.train_ai_brain(training_movies, true_preferences, epochs=500)# 测试AI的推荐能力
print("\n🎯 测试AI推荐能力...")
test_movies = [[8, 3, 6],  # 动作喜剧:《功夫熊猫》[1, 9, 2],  # 浪漫片:《我的野蛮女友》[6, 4, 7]   # 平衡片:《阿凡达》
]test_names = ["《功夫熊猫》", "《我的野蛮女友》", "《阿凡达》"]for i, movie in enumerate(test_movies):print(f"\n🎬 测试电影: {test_names[i]}")print(f"📋 特征: 动作{movie[0]}, 浪漫{movie[1]}, 喜剧{movie[2]}")recommendation = ai_critic.recommend_movie(np.array([movie]))print(f"🤖 {recommendation}")# 可视化训练过程
plt.figure(figsize=(10, 6))
plt.plot(training_errors)
plt.title('🧠 AI学习进度 - 误差随时间变化')
plt.xlabel('训练轮数')
plt.ylabel('平均误差')
plt.grid(True)
plt.show()print("\n🎉 恭喜!你已经成功创建了第一个神经网络!")

🎯 运行结果解析

当你运行这个代码时,你会看到:

  1. 🤖 AI初始化:随机权重开始,就像婴儿的大脑
  2. 📚 学习过程:AI不断从错误中学习,调整权重
  3. 📈 进步曲线:误差逐渐减小,AI越来越聪明
  4. 🎬 推荐结果:训练后的AI能准确预测电影偏好

这就是神经网络的神奇之处:从随机噪音到智能专家,只需要数据和训练! ✨## 🏗️ 深度神经网络:AI的"摩天大楼"

🏢 为什么要"盖高楼"?

还记得我们之前的电影推荐AI吗?它只有1个隐藏层,就像一个平房🏠。现在我们要建造AI界的"摩天大楼"——深度神经网络!🏗️

更多层 = 更强大的理解能力

想象AI识别一张猫的照片:

  • 第1层(边缘检测员):🔍 “我看到了一些线条和边缘”
  • 第2层(形状识别员):👁️ “这些边缘组成了眼睛、耳朵的形状”
  • 第3层(特征组合员):🧩 “眼睛+耳朵+胡须 = 看起来像动物的脸”
  • 第4层(专家判断员):🎯 “99%确定这是一只猫!”

每一层都在前一层的基础上,理解更抽象、更复杂的概念!

📈 深度的威力:从简单到复杂

浅层网络(1-2层):只能学简单模式
↓
中层网络(3-5层):能学复杂关系  
↓
深层网络(6-100+层):能理解高度抽象的概念

举个例子:

  • 识别数字:浅层网络就够了
  • 识别人脸:需要中层网络
  • 理解语言:需要深层网络
  • 自动驾驶:需要超深层网络

🚨 深度网络的"成长烦恼"

虽然深度网络很强大,但也有一些"青春期烦恼"需要解决:

😵 过拟合:死记硬背的"书呆子"

问题: AI变成了只会死记硬背的学生

表现:

  • 训练数据:100分 🎯
  • 测试数据:30分 😱

解决方案:

🎲 Dropout:随机"请假"制度
# 训练时随机让50%的神经元"请假"
# 就像团队合作,不能只依赖某几个人def dropout_layer(x, drop_rate=0.5):if training_mode:mask = np.random.binomial(1, 1-drop_rate, x.shape)return x * mask / (1-drop_rate)else:return x  # 测试时所有人都上班
📏 正则化:给AI立"规矩"
# L2正则化:不允许权重太极端
loss = original_loss + λ * sum(weight²)
# 就像告诉AI:"别太偏激,要平衡!"

⚡ 梯度消失:信息传递的"电话游戏"

问题: 传话传到最后完全变味了

想象一个1000人的传话游戏:

  • 第1个人:🗣️ “今天天气真好”
  • 第500个人:🤔 “今天…什么?”
  • 第1000个人:😵 “啥?有人说话吗?”

在深层网络中,梯度在反向传播时会越来越小,最终接近0,前面的层学不到东西!

解决方案:

🛣️ 残差连接:修建"高速公路"
# ResNet的核心思想:给信息修条高速路
def residual_block(x):# 常规路线(可能堵车)processed = neural_network_layers(x)# 高速公路(直达)shortcut = x# 两条路的结果相加output = processed + shortcutreturn output
🎯 BatchNorm:给每层装个"调节器"
# 批量归一化:让每层的输入都很"正常"
def batch_normalization(x):mean = np.mean(x, axis=0)var = np.var(x, axis=0)normalized = (x - mean) / np.sqrt(var + epsilon)return normalized

🎨 网络架构设计:AI的"建筑艺术"

设计神经网络就像设计建筑,既要科学又要艺术!🎨

🧩 关键设计决策

1. 🏗️ 网络深度:要盖几层楼?
  • 浅网络(1-3层):适合简单任务,像盖平房
  • 中等网络(4-10层):适合一般任务,像盖小高楼
  • 深网络(10-100+层):适合复杂任务,像盖摩天大楼
2. 📏 网络宽度:每层要多少神经元?
  • 太窄:学习能力不足,像独木桥
  • 太宽:容易过拟合,像铺张浪费
  • 刚好:恰到好处,像黄金比例
3. 🎭 激活函数:给神经元什么"性格"?
  • ReLU:简单粗暴,适合大部分情况
  • Sigmoid:温和优雅,适合概率输出
  • Tanh:情感丰富,适合需要负值的场景

🎯 经验法则(AI建筑师的"施工指南")

  1. 先简单后复杂:从小房子开始,再盖大楼
  2. 数据决定规模:数据多就盖大楼,数据少就盖平房
  3. 性能优先:ReLU + BatchNorm + Dropout 是经典组合
  4. 多试多调:建筑师也要反复修改图纸!

🎉 总结:神经网络的魔法与现实

🪄 神经网络的神奇之处

  1. 🧠 模仿大脑:受生物神经元启发,但已经超越生物的局限
  2. 📚 自动学习:不需要编程每个细节,从数据中自动学习模式
  3. 🎯 广泛适用:从图像识别到语言翻译,几乎无所不能
  4. 🚀 持续进化:每天都有新的技术突破

🌟 关键概念回顾

  • 神经元:网络的基本单位,就像乐高积木 🧩
  • 权重:决定信息重要性的参数 ⚖️
  • 激活函数:给神经元装上"性格" 🎭
  • 前向传播:信息从输入到输出的"流水线" 🏭
  • 反向传播:从错误中学习的"反思机制" 🔄
  • 深度:层数越多,理解越深刻 🏗️

🔮 展望未来

神经网络虽然强大,但仍在快速发展:

  • 更聪明的架构:Transformer、Attention机制
  • 更高效的训练:联邦学习、迁移学习
  • 更广泛的应用:医疗、教育、艺术创作

🎯 下期预告:CNN的视觉革命

下一期我们要学习CNN(卷积神经网络),看看AI是如何获得"超级视力"的!

预告内容:

  • 📸 为什么普通神经网络看不懂图片?
  • 🔍 卷积操作:AI的"魔法滤镜"
  • 🏊‍♂️ 池化操作:信息压缩大师
  • 🎯 实战:用CNN识别手写数字

记得点赞收藏关注三连!我们下期见!👋


💡 superior哥的神经网络小贴士:神经网络就像搭积木,从最简单的神经元开始,一层层搭建起来。虽然数学看起来复杂,但核心思想很简单:通过大量的试错来学习!不要被公式吓到,重在理解思想!加油!🧠✨

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

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

相关文章

03 APP 自动化-定位元素工具元素定位

文章目录 一、Appium常用元素定位工具1、U IAutomator View Android SDK 自带的定位工具2、Appium Desktop Inspector3、Weditor安装&#xff1a;Weditor工具的使用 4、uiautodev通过定位工具获取app页面元素有哪些属性 二、app 元素定位方法 一、Appium常用元素定位工具 1、U…

Java消息队列与安全实战:谢飞机的烧饼摊故事

Java消息队列与安全实战&#xff1a;谢飞机的烧饼摊故事 第一轮&#xff1a;消息队列与缓存 面试官&#xff1a;谢飞机&#xff0c;Kafka和RabbitMQ在电商场景如何选型&#xff1f; 谢飞机&#xff1a;&#xff08;摸出烧饼&#xff09;Kafka适合订单日志处理&#xff0c;像…

Unity中的MonoSingleton<T>与Singleton<T>

1.MonoSingleton 代码部分 using UnityEngine;/// <summary> /// MonoBehaviour单例基类 /// 需要挂载到GameObject上使用 /// </summary> public class MonoSingleton<T> : MonoBehaviour where T : MonoSingleton<T> {private static T _instance;…

day 40 python打卡

仔细学习下测试和训练代码的逻辑&#xff0c;这是基础&#xff0c;这个代码框架后续会一直沿用&#xff0c;后续的重点慢慢就是转向模型定义阶段了。 # 先继续之前的代码 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataL…

进阶日记(一)大模型的本地部署与运行

目录 一、背景知识 为什么要在本地部署大模型&#xff1f; 在本地部署大模型需要做哪些准备工作&#xff1f; &#xff08;1&#xff09;硬件配置 &#xff08;2&#xff09;软件环境 有哪些部署工具可供选择&#xff1f; 二、Ollma安装 Ollama安装完之后&#xff0c;还…

Spring Boot Starter 自动装配原理全解析:从概念到实践

Spring Boot Starter 自动装配原理全解析&#xff1a;从概念到实践 在Spring Boot开发中&#xff0c;Starter和自动装配是两个核心概念&#xff0c;它们共同构成了“开箱即用”的开发体验。通过引入一个Starter依赖&#xff0c;开发者可以快速集成第三方组件&#xff08;如Red…

win11回收站中出现:查看回收站中是否有以下项: WPS云盘回收站

好久没更新了&#xff0c;首先祝所有大朋友、小朋友六一儿童节快乐&#xff0c;真的希望我们永远都不会长大呀&#xff0c;长大真的好累呀(•_•) 免责声明 笔者先来个免责声明吧&#xff0c;被网上的阴暗面吓到了 若读者参照笔者的这篇文章所执行的操作中途或后续出现的任何…

网络安全大模型理解

一、网络安全大模型的概述 网络安全大模型是一种用于识别和应对各种网络安全威胁的模型。它通过分析网络数据包、网络行为等信息&#xff0c;识别潜在的网络安全事件&#xff0c;并采取相应的措施进行防御。网络安全大模型主要包括以下几个部分&#xff1a; 1. 数据预处理&am…

C++语法架构解说

C 是一种功能强大且灵活的编程语言&#xff0c;广泛应用于系统编程、游戏开发、嵌入式系统、金融软件等领域。 其语法架构复杂且丰富&#xff0c;涵盖了从基础语法到高级特性的各个方面。 对 C 语法架构 的详细解析&#xff0c;涵盖其核心语法结构、面向对象编程&#xff08;…

审计- 1- 审计概述

1.财务报表审计的概念 财务报表审计是指注册会计师对财务报表是否不存在重大错报提供合理保证&#xff0c;以积极方式提出意见&#xff0c;增强除管理层之外的预期使用者对财务报表信赖的程度。 1.1 审计业务三方关系人 注册会计师对财务报表发表审计意见是注册会计师的责任管…

RapidOCR集成PP-OCRv5_det mobile模型记录

该文章主要摘取记录RapidOCR集成PP-OCRv5_mobile_det记录&#xff0c;涉及模型转换&#xff0c;模型精度测试等步骤。原文请前往官方博客&#xff1a; https://rapidai.github.io/RapidOCRDocs/main/blog/2025/05/26/rapidocr%E9%9B%86%E6%88%90pp-ocrv5_det%E6%A8%A1%E5%9E%8B…

Spine工具入门教程2之导入

1、导入定义 从原画转化为Spine的环节。 &#xff08;1&#xff09;选择路径&#xff0c;拖动图片导入方式 缺点&#xff1a;定位不准 【使用批量导出的方式】 在PS工具中&#xff0c;选择所有图层后右键选择导出。 在Spine工具中&#xff0c;选择路径导入图片。 然后再拖…

【03】完整开发腾讯云播放器SDK的UniApp官方UTS插件——优雅草上架插件市场-卓伊凡

【03】完整开发腾讯云播放器SDK的UniApp官方UTS插件——优雅草上架插件市场-卓伊凡 一、项目背景与转型原因 1.1 原定计划的变更 本系列教程最初规划是开发即构美颜SDK的UTS插件&#xff0c;但由于甲方公司内部战略调整&#xff0c;原项目被迫中止。考虑到&#xff1a; 技术…

戴尔AI服务器订单激增至121亿美元,但传统业务承压

戴尔科技121亿美元的AI服务器订单&#xff0c;不仅超过了公司整个2025财年的AI服务器出货量&#xff0c;更让其AI订单积压达到144亿美元的历史高位。 戴尔科技最新财报显示&#xff0c;AI服务器需求的爆炸式增长正在重塑这家老牌PC制造商的业务格局&#xff0c;但同时也暴露出…

多线程和并发之线程

线程 前面讲到进程&#xff1a;为了并发执行任务&#xff08;程序&#xff09;&#xff0c;现代操作系统才引进进程的概念 分析&#xff1a; 创建开销问题&#xff1a;创建一个进程开销&#xff1a;大 子进程需要拷贝父进程的整个地址空间 通信开销问题&#xff1a;进程间的通…

AAAI 2025论文分享│STD-PLM:基于预训练语言模型的时空数据预测与补全方法

本文详细介绍了一篇发表于人工智能顶级会议AAAI 2025的论文《STD-PLM: Understanding Both Spatial and Temporal Properties of Spatial-Temporal Data with PLM》。该论文提出了一种基于预训练语言模型&#xff08;Pre-trained Language Model‌&#xff0c;PLM&#xff09;的…

前端八股 tcp 和 udp

都是传输层协议 udp 数据报协议 不可靠面向数据包对于应用层传递的报文加上UDP首部就传给网络层 tcp 传输控制协议 可靠 会将报文分段进行传输 区别&#xff1a; 1.tcp 可靠 udp 不可靠 2.tcp 面向连接 三握四挥 udp 无连接 3.tcp面向字节流 udp面向报文 4.效率低 效率高…

MES管理系统:Java+Vue,含源码与文档,实现生产过程实时监控、调度与优化,提升制造企业效能

前言&#xff1a; 在当今竞争激烈的制造业环境中&#xff0c;企业面临着提高生产效率、降低成本、提升产品质量以及快速响应市场变化等多重挑战。MES管理系统作为连接企业上层计划管理系统与底层工业控制之间的桥梁&#xff0c;扮演着至关重要的角色。它能够实时收集、分析和处…

MSTNet:用于糖尿病视网膜病变分类的多尺度空间感知 Transformer 与多实例学习方法|文献速递-深度学习医疗AI最新文献

Title 题目 MSTNet: Multi-scale spatial-aware transformer with multi-instance learning for diabetic retinopathy classification MSTNet&#xff1a;用于糖尿病视网膜病变分类的多尺度空间感知 Transformer 与多实例学习方法 01 文献速递介绍 糖尿病视网膜病变&#…

每日八股文6.2

每日八股-6.2 Go1.GMP调度原理&#xff08;这部分多去看看golang三关加深理解&#xff09;2.GC&#xff08;同样多去看看golang三关加深理解&#xff09;3.闭包4.go语言函数是一等公民是什么意思5.sync.Mutex和sync.RWMutex6.sync.WaitGroup7.sync.Cond8.sync.Pool9.panic和rec…