深度学习知识复盘前言 大部分是我在空闲时间对深度学习一些知识的复盘,可能并不是完全正确的。我只是利用 费曼学习法 在对我学习到的一些知识的解释,毕竟如果你自己能解释清楚知识点,才说明你真的学会了。 神经网络原理、CNN、RNN 深度学习,特指基于深层神经网络模型和方法的机器学习,它重要的特点是具有自动提取特征的能力。 神经网络是深度学习的核心,神经网络模仿人脑神经元的工作方式,通过层层的链接与计算,理解数据特征。 深度学习其实就是多层堆叠,并且具备分层自动特征理解的深层神经网络。 神经网络的基本结构是神经元,神经元主要做加权求和、加偏置、激活函数转换、输出。也就是说,神经元是一个计算容器。 神经网络的每一层有很多神经元,每一层都是对输入的数据做特征提取。上一层的神经元输出结果后,传递到下一个神经元,称之为一次连接。每次神经元连接,就是上层神经元计算的值,传递到下一层神经元,并且这次传递是带权重的,神经元依... 【学习笔记】刘二《PyTorch深度学习实践》- 31 卷积神经网络-基础篇 1.1 卷积神经网络学习 我们之前的神经网络,是由多个线性层串行的,这种神经网络叫做 全连接神经网络 。由于线性层的输入和下一个节点任意一个输出的都有相应的权重,都需要参与到下一个节点任意一个输出的计算,那么这种线性层也叫 全连接层 。 在使用 Softmax 训练 MNIST 数据集时,将数据输入全连接神经网络前,为了让输入满足线性回归模型的输入要求,做了一个前置操作,就是将 [N, 1, 28, 28] 的这么一个输入,转化为了 [N, 784] 。也就是说,这个前置操作将原有的图片数据的 空间信息消除了 。 在执行训练代码时,训练的最终结果,模型的准确率位置在 97.5 % 左右。而为什么不能继续升高,其实有一部分原因就是代码消除了图片数据的空间信息。例如这样的一个矩阵: python [ [ 1 , 2 , 3 ], [ 4 , 5 , 6 ], [ 7... - 笔记
10507 字
14 分钟
31
- 2026-06-30
【学习笔记】刘二《PyTorch深度学习实践》- 21 逻辑斯蒂回归 1.1 逻辑斯蒂回归学习 逻辑斯蒂回归(Logistic Regression),虽然叫回归,但实际做的是分类。 在数字手写识别中,模型的最终目的是将图片手写字,输出为最符合的数字(1、2、3、4 等等)。也就是说 y ^ \hat{y} y ^ 的值域是 { 1 , 2 , 3 , . . . , 9 } \left \{ 1, 2, 3, ..., 9 \right \} { 1 , 2 , 3 , ... , 9 } ,是具体的数字。 但是对于线性回归模型来说很难根据输入内容输出到具体的值。因为在手写识别场景下,模型做的 不是数值的计算,而是概率的计算 。 输入一张图片给模型,模型计算这个图片属于这些值的概率,最终输出的是概率最大的那个值,这其实就是分类问题。 所以,得寻找一个方法,能够将某个预测值,映射到 [ 0 , 1 ] \left [0, 1 \righ... 【学习笔记】刘二《PyTorch深度学习实践》- 11 线性模型 1.1 机器学习流程 机器学习的步骤要求: 获取数据集 DataSet 选择模型 Model 训练 Training 推理 Inferring 机器学习的通常步骤: 使用训练集训练模型 使用开发集(从训练集中划分出来)初步测试 使用测试集测试性能 得到最终的模型 输入新的数据给模型 得到预测结果 在训练时的拟合效果很好,但是在测试集却不是很好,可能是在训练时将噪声也进行识别了,导致 过拟合 。 在训练时的拟合效果很好,在测试集以及最终上线后,也能正确识别结果,说明模型具有很好的 泛化 能力。 1.2 线性回归模型学习 线性回归模型: y ^ = w x + b \hat{y} = w x + b y ^ = w x + b 在模型训练中,对于需要计算实际值(预测值)与真实值之间的差距。对于线性回归模型来说,就是上面蓝色的线或者下面绿色的线,与中间红色的线的垂直高度差。单个... - 笔记
7870 字
10 分钟
22
- 2026-06-28
【Vue3】超便捷的基于 Axios 的接口请求工具包1 前言 在一个 Vue + Typescript + Axios 的项目中,如果要写一个接口请求工具,大概是要这几个步骤: 写一个 Axios 实例配置,配置好 baseUrl、请求超时时间、请求拦截器、响应拦截器等等。 写一个文件,这个文件专门导出一个模块的请求函数。请求函数的内容是,接收请求参数,然后配置好请求方法、请求路径、请求头等信息,然后返回这个 Axios 请求结果。 为了有好的代码提示,还需要写一个文件,这个文件专门导出接口的响应数据类型,或者请求数据类型。 这只是一个基础的请求工具。 在此之后,你逐渐发现一个问题,当项目中有很多地方,需要使用 Loading 效果时,你就得为需要的接口,在相应的页面组件,都定义一个 Loading 的 ref,然后在请求发起前后,都编写 Loading 的触发逻辑。 如果某个接口,在多个页面都有使用,并且都需要 Loading 效果时,你... - 技术
9963 字
13 分钟
16
- 2026-06-23
ASP.NET 学习记录1 前言 前几天我在 b 站,看到了一个关于 Web 后端框架对比的视频,发现了一个集开发效率、性能、低资源占用的一个后端技术,也就是 ASP.NET ,是由 C# 编写的。 然后我去官网稍微看了下教程,没想到 C# 的很多语法和 Java 完全一样,不一样的地方也很容易理解。 为了减轻我的博客的资源占用负担,我打算将博客从 SpringBoot 迁移到 ASP.NET 中。所以来记录一下我初次学习和使用 ASP.NET 的过程。 2 安装 C # 环境安装很简单,在官网下载安装包: 下载 .NET (Linux、macOS 和 Windows) | .NET 然后双击安装即可 然后打开终端,输入命令 shell dotnet --version 如果出现版本信息,那就说明安装好了。 接下来就是在 VS Code 中配置开发环境。 首先在VS Code 扩展中,搜索 C#,找到 C# De... - 技术
11033 字
14 分钟
18
- 2026-04-13
Python 实现基础的串行步骤任务机制1 前言 哎呀,最近有点忙,有一段时间没看博客了,好在都运行得好好的。不愧是我花了大心思编写的项目哈哈哈(其实我知道是因为没什么人来看,扎心了老铁) 前段时间我在学习 Python 时,遇到过一个问题,我有一个串行的流程,大概就是:爬取数据 -> 清洗数据 -> 保存数据的这么个流程。 但是由于这个流程完整执行的话耗时很长,一个接一个执行的话十分缓慢,我就想着能不能做一个简单的任务机制,将这段流程打包成一个任务,然后并发执行。 单纯的并发其实好解决,就弄个线程池,一个一个启动不就行了。 但是我要的是任务机制,可以记录这个流程中, 各个步骤点的执行状态 ,并且 支持暂停、继续、重新开始 等等进阶功能。 除此之外,我还希望这个功能有一个基本的排队能力,不然我批量启动的话,如果超过线程池的线程用完了,剩下的就启动失败,这不太行。 应该是如果没有线程可用,就等待,等到有线程池了,再启动。 于是编写... 2025 年度小记1 瞎话闲聊 不知不觉,一年又过去了。 今年算是我从 22 年成为大学生以来,最忙碌,但也是收获最多的一年了。 毕竟我从大一到大三上一直都是超级混子。 大概是今年年初吧,想到自己那四舍五入约等于没有的技术,觉得这样下去秋招要完蛋,而且自己摆烂也没有考虑去考研,大学四年白读的话真不太好。 于是某一天下定决心,开始慢慢捡回自己丢掉的技术。 我开始每天早起,在 B 站一边看网课,一边写他们的项目。虽然强度不算很高,但是随着时间的推移,我对这些技术也逐渐熟络起来。 转机是七月初吧,在专业群里看见本地的一家公司来招实习生,就草草写了份简历投了。 我本来没报什么希望,打算过两天就回家,然后暑假备战秋招的,没想到第二天就收到了面试通知。 面试还挺水的,可能是实习生要求不高吧,稀里糊涂就被招进去了。 公司待遇不错,但是项目很不是很出色,也忙里忙外两个月做完了。只能说不愧是全干工程师,忙起来是真的忙,干的活... 【Vue3】Pinia + Transition-Group 优雅实现 Message 消息组件1 前言 消息组件是非常常用的组件之一,Element Plus 和 Naive UI 都有提供相应的消息组件,使用起来也相当方便。 那么,如果自己实现一个,怎么做呢? 我最初的方案, 是用 VNode 实现的,创建一个 Message 组件的 VNode ,然后在 body 渲染出来。 这种办法的缺点很明显,写起来很复杂,最主要的是,样式和过渡动画不好控制。 现在,我使用一个新的方案,可以非常优雅,非常简单的实现这个消息组件,并且可以很轻松的控制样式和动画效果。 话不多说,看效果 2 实现 思路相当简单。响应式的数据,就由 Pinia 来做,然后渲染就是用 transition-group + v-for 的形式,渲染 Pinia 的响应式数据,没了。 首先,先要知道我们的组件需要什么。也就是要先定义类型。 想必一下就能猜到了,首先,必要就是消息内容 message,然后就是消息的类型... Picgo 插件开发记录1 前言 我很喜欢用 Obsidian,我的第一个笔记软件就是用的 Obsidian,在我还没开始写代码的时候,我就开始用 Obsidian 做笔记。 我现在也搭建了一个自己的博客网站,初版,也就是 v1 版的博客端的布局,特别是文章部分的布局,是参考 Obsidian 的。 然而,v1 版的后台系统,使用 Vue3 + Element Plus 搭建的,很简陋,而且超级无敌丑。 在 v1 版,上传笔记的主要方式是,先在 Obsidian 写好,然后复制粘贴到后台管理系统的 markdown 编辑器,最后把图片一一上传。很繁琐,对吧? 说实话,如果只是文字的话,复制粘贴过去就完事了,只是有些 Obsidian 特殊的语法,在 markdown 编辑器没法展示出来而已(博客端是可以的,因为我用了 markdown-it 插件)。 最麻烦的还是图片。如果我写了一篇很长的博客,有大量图片的话,一... RustFS学习、SpringBoot 集成与MinIO迁移1 前言 近期 MinIO 宣布开源版本进入 “维护模式”。从 5 月 22 日版起,阉割了 Web 的大部分功能,以及至今的种种迹象来看,MinIO 似乎要朝着闭源商业版发展,对我这种穷小子来说,还是很无奈的。 我用的是 4 月 22 日版的 MinIO,包括这个博客也是,但是这个版本现在只有 Linux 版和 Docker 版了,Window 版的我在网上找遍了都找不到。 因为我的博客是要长期维护和更新的,所以我打算从 MinIO 迁移到最近很火的 RustFS 上,并记录我的迁移过程。 我将从 RustFS 学习、SpringBoot 的集成和从 MinIO 迁移的过程三个方向来记录,这样思路比较清晰一点。 2 RustFS 学习 2.1 RustFS 介绍 先贴一下我从官网找到的资料 RustFS 安装指南 | RustFS 文档中心 RustFS 与其他存储产品对比 | Rust... MinIO-Windows系统下Docker高版本与本机低版本的安装、数据迁移记录1 前言 最近遇到一个问题,原本的服务器(不是我的)是使用 Docker 部署的 MinIO,而现在我需要将 MinIO 迁移到一个 Windows Server 系统中。 但由于这个垃圾 Windows Server 系统居然没有 Docker (能不能装不是我能决定的)。所以只能将 MinIO 直接装在 Windows 系统中。 现在有个尴尬的问题,MinIO 的 5 月 24 日以后的版本,阉割了大部分 Web 的功能,服务功能不知道有没有被阉割。我的 Docker 中使用的是 4 月 22 日版本的 MinIO,所以我打算找相同版本号的 Windows 版本的 MinIO。但很可惜,找不到。 Windows 安装 MinIO 需要 minio.exe 文件,但是这个文件的历史版本不知道在哪下载,官网只有最新的版本。 无奈之下,只能找个更低的版本,安装和版本资源详见: 在Window...