- 博客(39)
- 资源 (3)
- 收藏
- 关注
原创 简单理解深度学习中的多种归一化方法
本文对比分析了深度学习中四种常用的归一化方法:批归一化(BN)、层归一化(LN)、实例归一化(IN)和组归一化(GN)。BN通过跨样本同通道归一化加速训练,但对批次大小敏感;LN在单个样本内对所有通道归一化,适用于RNN等场景;IN对单样本单通道归一化,常用于风格迁移;GN则对样本内通道分组归一化,是小批次场景的有效替代方案。四种方法各具特点:BN依赖批次但CNN效果佳,LN/IN/GN不依赖批次但适用场景不同,其中GN在小批次CNN中表现优异。这些归一化技术通过不同的数据统计维度,为模型训练提供了多样化的
2026-03-21 20:14:26
429
原创 解析残差网络 (ResNet)
ResNet通过残差学习解决了深度神经网络退化问题。其核心是残差块结构,包含主路径(学习残差F(x))和捷径连接(直接传递输入x),最终输出为H(x)=F(x)+x。这种设计使得网络能轻松学习恒等映射,优化目标简化为将残差推向零。在反向传播中,"+1"项确保梯度能直接传递,形成永不堵塞的梯度高速公路,有效避免了梯度消失问题。ResNet的创新结构使超深层网络的训练成为可能,极大推动了深度学习发展。
2026-03-01 18:35:57
603
原创 搞懂卷积神经网络(CNN)的核心运算
本文详细解析了卷积神经网络(CNN)的核心运算过程。首先介绍了CNN的关键符号表示,包括层级索引、过滤器尺寸、填充和步幅等超参数。然后重点阐述了卷积运算的全过程:输入预处理填充、单个过滤器的滑动窗口卷积操作、多过滤器生成多通道输出,以及输出尺寸的计算公式。文章强调每个过滤器的深度必须与输入通道数匹配,并通过逐元素相乘求和的点积运算将高维信息压缩为特征图。最终输出是由多个过滤器提取的不同特征组成的新的三维数据体,其通道数代表提取特征的数量。
2026-02-26 21:29:06
659
原创 深入解析批归一化 (Batch Normalization): 稳定并加速深度学习的基石
批归一化(Batch Normalization, BN)通过标准化神经网络中间层输入,有效缓解内部协变量偏移问题,加速模型收敛并提升训练稳定性。其核心步骤包括:计算小批量均值与方差、标准化数据(均值为0、方差为1),再通过可学习的缩放因子γ和平移因子β恢复网络表达能力。BN还隐含正则化效果,降低对初始化的敏感性。测试时需用全局统计量替代批量计算。这一技术显著优化了深度学习的训练效率和性能。
2026-02-17 15:25:45
622
原创 Batch 与 Mini-Batch 梯度下降的权衡与选择
摘要:深度学习中,Batch梯度下降使用整个训练集计算梯度,更新稳定但计算成本高;Mini-Batch梯度下降则使用小批量数据,在内存效率和计算速度上更优,是当前主流方法。Batch适用于小数据集(≤2000),而Mini-Batch需确保数据能装入内存,常用大小为64/128/256等2的幂次方以优化计算效率。Mini-Batch通过高频更新实现快速收敛,其梯度噪声还具有一定正则化效果。
2026-02-13 17:12:44
615
原创 输入归一化 (Input Normalization)为何必须使用训练集的μ和σ?
输入归一化是机器学习数据预处理的关键步骤,通过对特征值进行标准化调整(通常采用均值-标准差方法),使不同量纲的特征具有可比性。其核心价值在于优化梯度下降效率,确保特征贡献均衡。实施时需严格遵循使用训练集统计量(μ_train和σ_train)对测试集进行归一化的原则,以保持数据变换一致性,避免信息泄露,并将归一化参数视为模型固有部分。完整流程包括:数据划分→训练集统计量计算→保存参数→统一应用变换→模型训练与部署。这一规范化操作显著提升模型收敛速度和泛化能力。
2026-02-10 19:43:09
556
原创 理解Inverted Dropout的每一步
本文详细解析了神经网络中Inverted Dropout技术的实现过程,包括前向传播和反向传播的完整计算流程。前向传播阶段,通过生成随机蒙版并应用缩放因子来丢弃部分神经元;反向传播阶段,严格遵循链式法则计算梯度,确保被丢弃神经元的梯度为零。文章使用清晰的数学符号和伪代码展示了Dropout在每一层的具体操作,特别强调了Inverted Dropout通过缩放保持激活期望值的关键步骤,为理解Dropout机制提供了系统化的技术指南。
2026-02-10 18:25:06
635
原创 Cherry Studio使用阿里云OSS备份进行多端同步
本文介绍了利用阿里云OSS和Remotely Save插件实现Obsidian云同步的方法。关键步骤包括:在阿里云创建Bucket后,需要在CherryStudio中进行配置,API地址需添加前缀,区域信息可从Bucket概览获取。特别注意Bucket域名配置时需要去掉前面的bucket名称前缀。该方法通过第三方插件实现了Obsidian笔记的安全云端存储与同步功能。
2025-11-20 15:13:27
351
原创 macOS卸载.net core 8.0
本文详细介绍如何在macOS上卸载.NET Core 8.0。首先需要从GitHub下载官方卸载工具,解压后通过终端运行。使用list命令查看已安装版本,确认版本号后,先用dry-run测试卸载操作,最后使用remove命令配合sudo权限完成卸载。注意要区分SDK和运行时版本,确保版本号与查询结果完全一致。该工具支持Visual Studio for Mac安装的版本,但无法卸载通过zip/脚本安装的版本。
2025-08-01 22:53:54
733
原创 PL-0功能拓展及基于VSCode的IDE配置
本文介绍了PL/0语言的扩展实现及基于VSCode的IDE配置。在功能扩展方面,实现了浮点数运算、上下取整函数、格式化输入输出、整型/浮点数组等功能,并新增了数组统计函数(求和、平均值、最大值、最小值)。通过修改编译器源代码,扩展了词法分析、语法分析和中间代码生成模块。在开发环境方面,开发了VSCode插件,为PL/0语言提供语法高亮和代码补全功能。项目通过扩展PL/0语言的基本功能和改善开发体验,展示了编译原理课程实践的成果,所有代码已开源在GitHub上。
2025-08-01 22:49:35
1124
原创 【React】npm install报错npm : 无法加载文件 D:\APP\nodejs\npm.ps1,因为在此系统上禁止运行脚本。
解决React项目安装依赖时报错的方法:在VS Code中将终端从PowerShell切换为Command Prompt即可正常安装。文中配图展示了修改终端设置的操作界面。
2025-07-21 20:11:07
348
原创 mac执行brew services list时,无法连接GitHub
方法: 访问https://www.ipaddress.com。A RECORDS下的IP显示为140.82.112.3。在终端中ping github.com也一直超时.i进入编辑模式,esc退出,:wq保存。然后重启终端,再ping就通了.右上角输入github.com。
2025-02-03 14:24:27
839
原创 Pycharm打开django支持
在 PyCharm 中打开 “Settings/Preferences” -> “Languages & Frameworks” -> “Django”。勾上Enable Django support。然后配置好文件根目录就好了。
2024-05-29 15:24:36
918
原创 使用Sourcetree推送本地仓库至远程仓库时报错The host key is not cached for this server
改成OpenSSH,密钥改成配置Git和本地仓库时生成的.ssh文件夹下的id_rsa文件。原因是SSH没配置好。
2024-03-12 10:12:28
2517
原创 mac查看maven版本报错:The JAVA_HOME environment variable is not defined correctly
mac查看maven版本报错
2024-01-16 21:23:51
1673
原创 Windows10安装Oracle19c运行setup.exe闪退
原因是安装路径里的文件夹名中有空格,比如"Program Files (x86)"
2023-12-14 15:38:49
965
2
原创 错误 175: 具有固定名称“Oracle.ManagedDataAccess.Client”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载
错误 175: 具有固定名称“Oracle.ManagedDataAccess.Client”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载。有关详细信息,请参阅内部异常。
2023-12-13 16:41:08
616
原创 Django+vue.js在pycharm中file watcher配置使用sass
打开pycharm的settings->Tools->File Watchers,添加SCSS,✏️编辑添加的SCSS,如果Program是红色的sass,或者别的什么,就把刚安装的sass的路径放上去。-D好像是局部安装,在项目根目录的node_modules里,作为开发依赖项。如果不知道在哪就pycharm的terminal输入where sass。然后npm install -D sass-loader sass。先把npm设置为淘宝源。
2023-11-12 17:05:05
255
原创 MacOS下Pycharm导入Anaconda虚拟环境找不到安装好的tensorflow问题
点Interpreter右边的三个点,选择虚拟环境bin目录下的python。这样import tensorflow就不报错了。
2023-08-16 23:26:56
195
原创 mac环境下怎么看自己用homebrew安装的redis的配置文件redis.conf在哪
也就是说redis是用homebrew安装的可能才得被找到。2、找到那个plist结尾的,复制下来用vim打开。1、打开终端,输入brew list redis。
2023-03-22 01:22:45
1621
1
原创 Mac环境解决pom.xml中Plugin ‘org.springframework.boot:spring-boot-maven-plugin:2.3.1.RELEASE‘ not found问题
3、依次进入org->springframework->boot->spring-boot-starter。2、打开终端,用open命令在访达中进入本地仓库。这个2.3.12就是plugin的版本号。
2023-03-21 23:58:43
876
原创 【力扣题解】1080. 根到叶路径上的不足节点
使用二叉树的深度优先遍历,有参考网络代码class Solution {public: bool isLeaf(TreeNode* root) { if ((root->left == nullptr) && (root->right == nullptr)) { return true; } else { return false; } }
2022-01-11 18:09:12
356
原创 【人工智能实验】蚁群算法解决TSP问题
定义了Point类忘了用了结果代码变成了粪山????其中涉及贪婪算法,轮盘赌法,以及看不懂自己写的什么了在这里插入代码片
2021-11-07 15:26:03
599
原创 C++初始化双层vector(vector<vector<double>>)出现Expression: vector subscript out of range错误解决方法
报错代码块为:vector<vector<double>> dist;//distance listfor (i = 0; i < n; i++) {//init distance list for (j = 0; j < n; j++) { dist[i].push_back(0.1); }}分析原因后觉得应该是vector<vector<double>> dist中一个vector<double
2021-10-29 14:12:25
3076
转载 【C#教程】学习笔记 一
完整教程来自C#教程|菜鸟教程本文为学习笔记,对教程做方便自己复习的部分摘录。C#程序结构一个C#程序主要包括:命名空间声明、class、class方法、class属性、一个Main方法、语句和表达式、(注释)例如:using System;namespace HelloWorldApplication //命名空间声明{ class HelloWorld //class 类声明 { static void Main(string[] args)//程序入口Main方法
2021-10-11 22:53:55
227
原创 [力扣题解]4. 寻找两个正序数组的中位数
[力扣题解]4. 寻找两个正序数组的中位数题目描述:解题结果:解题思路: 采用将两个正序数组nums1和nums2合并的方法,在合并后的数组里找中位数。比较难的地方在于怎么把两个数组合并。具体思路是从nums1和nums2的最大一端开始,依次比较两个数组各自的最大元素哪个比较大,将比较大的那一个取出来放入合并后数组中,直到其中一个数组为空。比如nums1:1,3和nums2:2,4.首先比较两个数组最大的元素3和4,4比较大,将其取出放入合并后数组,于是nums2数组中元素2成为最大,将2与3进行
2021-08-06 22:38:06
159
原创 一台机器安装多个MySQL时使用cmd命令行打开MySQL命令方法
Win10操作系统 MySQL版本一个为8.0另一个为5.7通过命令行直接进入MySQL8.0会报错:可能是因为系统分辨不出要进入哪一个MySQL(警告为在命令行里直接输入MySQL密码不安全,使用mysql -uroot -p敲回车再输入密码更安全。)正确打开的方法为进入安装MySQL文件夹下的bin目录,再敲上述代码:先cd一下MySQL8.0的安装目录再使用进入MySQL的命令,最好加上端口号(不然默认是3306,此处MySQL57版本的端口号是3306,而MySQL80版本的端口是3
2021-06-09 10:57:55
1010
1
原创 【MySQL8.0】workbench添加外键时报错Error Code: 3780
具体错误信息为: Error Code: 3780. Referencing column ‘Cno’ and referenced column ‘Cno’ in foreign key constraint ‘sc_ibfk_4’ are incompatible.具体SQL语句为:alter table sc add foreign key(Cno) references course(Cno) on update cascade on delete cascade;上网查找后发现应该是sc表
2021-05-13 14:20:39
2268
3
原创 【力扣题解】2、两数相加
【力扣题解】2、两数相加题目描述: 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。来源: 力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-two-numbers参考示例:**解题结果: **解题思路: 类似数电里的串行进位加法器原理,从低位逐位加到高位
2021-02-05 20:29:22
247
原创 【力扣题解】 1、两数之和
【力扣题解】1、两数之和题目描述: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。你可以按任意顺序返回答案。参考示例:解题结果: 代码:class Solution {public: vector<int> twoSum(vector<int>& nums, int target) {
2021-02-04 15:41:32
247
原创 【力扣题解】剑指 Offer 63. 股票的最大利润
【力扣题解】剑指 Offer 63. 股票的最大利润**题目描述:**假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?解题结果:就菜的离谱解题思路: 在给出的股票价格序列中,先找出最大的价格及其对应的天数(即在股票价格序列中的位置),再找出最小的价格及其对应的天数。接着再找出最大价格之前的最小价格及其对应的天数,两者之差为profit_1;找出最小价格之后的最大价格及其对应的天数,两者之差为profit_2。比较profit_1和profit_2,返
2021-02-04 14:44:08
316
原创 [Java程序设计作业练习题]设计一个WordCounter类读取txt文件,实现从txt文件中搜索子串,返回子串初次和最后一次出现位置的行数和出现次数
题目:设计Java类WordCounter,实现从文本Text检索Key子串,统计Key在Text中的出现次数,并返回Key在Text中第一次和最后一次出现的位置。这是一道我在学校的网络程序设计课程上找到的练习题,编程过程中学到了许多新的知识,为了牢记以及方便日后复习,于是写了这篇博客。主要运用Java的BufferedReader类,文末附上完整代码。首先是main函数中的部分代码 public static void main(String[] args) throws FileNotFo
2020-07-18 00:22:21
742
原创 使用IDEA编写Java程序时遇到的小提醒Common part can be extracted from ‘if‘
使用IDEA编写一个简单的Java练习题时发现IDEA给if语句加了绿色波浪线,提示:Common part can be extracted from ‘if’。如图:由于好奇,我就在网上搜了这句话查找解决方案,但发现都没有找到。于是跟着IDEA给出的修改建议,点击了那句“Extract common part from ‘if’ ”,IDEA马上给出了修改后的代码:原来是原本的if-else语句中包含了两个return语句,IDEA提醒我可以写在函数最后,让代码更整洁。想着既然没人提到这玩意
2020-07-16 22:38:01
18610
6
原创 Java程序设计简单练习题
整理了一下最近做的Java练习题,编程新手请多指教1、编写一个实现由1到k的平方和计算package demo1.code1;import java.util.Scanner;public class Calculate_k { public static int calculation(int k) { int result = 0; for (int i = 1; i <= k; i++) { result = i * i +
2020-07-10 20:31:02
2439
6
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅