自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Machine Learning HW2 report:语音辨识(Hongyi Lee)

narrower and deeper和wider and shallower在此次任务上差别不大,后者表现略好Colab会限额,建议在kaggle notebook上训练,后者GPU性能和分配的时间都明显好于前者。kaggle notebook上训练时,记得改训练、测试用的数据文件地址和输出文件地址。kaggle notebook上训练完成后,在下载结果文件.csv前不要stop session,否则文件会被销毁!在如果要在自己电脑上运行。

2025-07-18 19:37:48 995

原创 Supplement Note: 机器学习Classification Introduction

分类是机器学习中常见任务,旨在将输入数据分配到不同的类别中。本文简短介绍了分类,不涉及太多原理。

2025-06-30 11:05:33 426

原创 Note2.4 机器学习:Batch Normalization Introduction

Batch Normalization(批标准化,BN)通过标准化数据的操作,使得损失函数的优化地形(optimization landscape)更加平滑,从而达到更好地训练效果。BN常用于卷积神经网络(CNN)等。

2025-06-28 19:17:00 469

原创 Note2.3 机器学习:Adaptive Learning Rate

Adaptive Learning Rate是一种有效的训练技巧,可以解决training stuck的问题,基础思想:根据具体情况,给每个参数不同的Learning rate,并动态调整。

2025-06-28 17:02:27 1042

原创 Note2.2 机器学习训练技巧:Batch and Momentum(Machine Learning by Hung-yi Lee)

small batch和momentum都是训练的常见技巧,可以escape critical points,取得更好的结果

2025-06-28 13:17:55 519

原创 Note2.1 处理critical point(Machine Learning by Hung-yi Lee)

训练时常出现loss很高但趋于稳定的情况,直觉是卡在了local minima(极小值),但可能的情况还包括local maxima、saddle point(鞍点),这些点都会出现gradient为0的情况,统称critical point。本文介绍了如何判断类型及相应处理

2025-06-28 11:58:41 387

原创 Note2:机器学习基本攻略(Machine Learning by Hung-yi Lee)

即使是一个很废物的模型,只要通过一直调参,不断上传,也可能在得到一个很好的结果。这是因为很多testing set是全部公开的,没有划分public和private,所以通过不断调参,可以得到好的结果。,如果又根据public上的结果反复调整,可能出现模型fit在public testing set这种上述提及的情况。模型弹性太大,可能出现这个问题,模型过度“记忆”了训练数据的细节(包括噪声和异常值),而非学习其内在规律。,后者不参与模型的调参,用模型在后者上的结果表示训练结果。

2025-06-27 11:54:24 986

原创 机器学习数学基础:矩阵求导

机器学习中常涉及到标量对向量、向量对标量、矩阵对向量等求导,必须使用到矩阵求导。

2025-06-27 08:25:29 1018

原创 HW1 code analysis (Machine Learning by Hung-yi Lee)

这段代码是使用 gdown命令行工具从 Google Drive 下载文件的命令,:Google Colab、Jupyter Notebook 或其他支持!执行终端命令的 Python 环境。

2025-05-01 13:56:17 774

原创 Machine Learning HW1 report(Hongyi Lee)

kaggle这个任务score越低越好,因为表示的是与真实值的差距。优化思路:选择更好的features,改神经网络架构,L2正则化。

2025-05-01 13:38:03 523

原创 Visual Studio2022 配置 SDL3及拓展库

SDL(Simple DirectMedia Layer)是一个开源的跨平台多媒体开发库,使用C语言编写,主要用于游戏、模拟器和媒体播放器等多媒体应用的开发。它提供了控制图像、声音、输入输出等功能的函数,使开发者能够用相同的代码开发跨平台(如Linux、Windows、macOS等)的应用程序。本文使用VS2022。

2025-04-23 17:26:11 1598 1

原创 C++ 细节优化与好的代码风格

如果不需要修改数值,使用常态函数(后面加const)虚函数的覆写用override显式指出。

2025-03-28 18:23:34 331

原创 C++操作符重载易错点

以++为例,分为前置++,和后置++

2025-03-27 23:44:15 374

原创 C++常见bug与易错点

输入用 , - 或空格等分隔的多个数据,或数据的类型不同的情况,如6-670-82162-X,容易出错。

2025-03-12 20:31:01 434

原创 数字逻辑与计算机组成易错知识点

以IEEE754 32位单精度格式为例(即C语言中的float类型),其中尾数有23位(注意有隐藏位)例:C语言中定义float a=-1.1,写出a的机器数(用16进制表示)

2025-03-11 19:15:53 226

原创 C++单向链表常见错误

操作时往往不需要当前节点的指针,而是需要上一节点的。merge函数merge函数用于把另一链表合并到当前链表尾部常见错误:1. 当前列表list_size没有更新2.merge相当于转移空间所有权,other.head成为了没有意义的指针,但没有通过置空回收。

2025-03-07 19:12:12 750

原创 C++隐式拷贝构造函数与用于计数的静态数据成员造成的bug

上述代码的预期结果是 1 2 3 2,因为进入display函数内部时,会调用拷贝构造函数创建一个新的Date对象,而离开display函数作用域时会调用析构函数。如果想正确追踪程序运行时对象的个数,可以显式定义一个拷贝构造函数,并在其中增加。但实际结果是1 2 2 1,原因。中,临时对象的创建不会导致。默认拷贝构造函数不会增加。临时对象的销毁会导致。从 2 减少到 1。

2025-03-06 20:55:03 441 1

原创 C++拷贝构造函数易错点

在B类的拷贝构造函数的成员初始化表中显式指出,才能使b2与b1一致。类的拷贝构造函数的成员初始化表中显式指出。

2025-03-06 18:20:29 303

原创 PyTorch Introduction

目录What is PyTorch​Training & Testing Neural Networks in PytorchDataset & Dataloader概念解析1. Batch(批次)2. Epoch(轮次)3. Shuffle(打乱)Tensorstorch.nnNeural Network Training概念解析1. Validation Set(验证集)2. Test Set(测试集)3. Validation 和 Test 的区别4. 数据集划分的常见比例Save/Load​More

2025-03-01 17:54:18 1147

原创 C++构造函数和析构函数易忽略知识点

后创建的对象先销毁,类似栈的逻辑。上述资料来自NJU高级程序设计。

2025-02-27 17:09:13 308

原创 C++字符串传参错误

c++中字符串常量 ,如"Hello World!",其类型是 const char*。一个函数要接受字符串作为参数时,参数类型不能定为char*——C++ 不允许将 const char* 隐式转换为 char* ,因为字符串常量是只读的,直接修改会导致未定义行为。

2025-02-26 17:19:24 330

原创 Supplement Note: Regression(Machine Learning by Hung-yi Lee)

回归(Regression)是机器学习中的一种基本方法,主要用于预测连续值。例如,预测房价、气温或股票价格等任务都属于回归问题,其输出是一个单一的实数值。本文以pokemon(宝可梦)为例。

2025-02-26 17:02:34 701

原创 Supplement Note: Backpropagation(Machine Learning by Hung-yi Lee)

Backpropagation(反向传播算法)简称BP,是训练neutral network一种方法,它通过计算loss函数相对于网络参数(weight和bias)的descend(梯度)来优化这些参数。BP结合了gradient descend(梯度下降法)或其他优化算法来最小化损失函数,从而提高模型的预测准确性。neutral network有着极多的参数,BP提供了一种高效的方法。

2025-01-20 23:49:28 955

原创 Note 1:Concept (Machine Learning by Hung-yi Lee)

function可分为三类:regression(回归:预测连续值输入,如明天的空气污染指数),classification(分类:预测离散值输出,如垃圾邮件分类),clustering(聚类:一种无监督学习方法,寻找数据内在的结构、模式)

2025-01-19 23:20:25 312

原创 C++魔塔基础版

本文将基于C++与EasyX图形库,实现魔塔的基础改编版,相较于原版,增加了升级、血量上限等功能,设计了四层地图与出乎意料的结局,并合理安排数值,使游戏趣味性与挑战性兼具

2025-01-08 13:22:00 1512

原创 GetAsyncKeyState函数实现一键一动

GetAsyncKeyState函数可以检测指定键是否按下,常用于在检测游戏中玩家的按键输入。但GetAsyncKeyState只能检测状态,即如果用在一个循环试图检测“a”被按下,按下一次则执行相应的操作,则会出现按下“a”执行多次操作的问题。下文将实现一键一动。

2025-01-07 23:39:17 551

原创 Python:链表基础

链表是一种强大的数据结构,可用于快速插入或删除元素。本文将使用class实现链表,并展示一些基本的函数。

2025-01-02 16:53:39 391

原创 Python: str与repr的区别

str和repr都是用于表示object(对象),str可读性强,repr强调准确性。str是string的缩写,repr是representation的缩写。

2025-01-02 06:00:00 215

原创 Python:闭包陷阱

原因:以上写法认为每次向r中存入函数时,a的值会传进去,如当a为1时,认为传入的函数为lambda x :x+1。实则不然,lambda函数体只有在被调用时才求值,以上代码调用函数时a已经变为了3。闭包会捕获并“记住”它们被创建时的环境,如果不正确理解这一点,可能会产生一些意外的结果。运行结果分别为 [2, 2, 2] 和 [0, 1, 2]以下代码在r列表中存入函数,试图输出 1 2 3。在每次存入函数时,对a求值即可。但实际结果为3 3 3。

2025-01-01 18:43:24 360

原创 Python:理解高阶函数核心

b返回一个函数,则c成为函数,且c对应的函数传入0个参数,所以这段代码运行的结果是19。c本质上变成了f1函数,所以d最终结果为12*9=108。高阶函数的本质在于返回一个函数。f1(9)本质变为了f2函数!注意:直接调用f2函数会报错。

2025-01-01 18:12:03 405

原创 Python中class易错点

编译器会报错,原因是foo函数的frame是Global frame,Global frame中并没有a的定义。1.class不会创建新的frame。修改: print(self.a)

2025-01-01 15:04:58 130

用c语言编写选择排序程序

选择排序程序(C语言实现) 内容概要 本资源是一个使用C语言实现的选择排序算法程序。选择排序是一种简单直观的排序算法,通过每次从未排序部分选择最小(或最大)的元素,放到已排序部分的末尾,逐步完成整个数组的排序。程序提供了清晰的代码实现和示例,帮助用户理解选择排序的工作原理。 适用人群 C语言初学者 算法学习者 需要实现基础排序功能的开发者 对排序算法感兴趣的编程爱好者 使用场景及目标 学习排序算法:通过阅读和运行代码,理解选择排序的基本思想和实现细节。 项目开发:在需要简单排序功能的项目中直接使用或参考本程序。 面试准备:作为基础排序算法的参考实现,帮助掌握选择排序的核心概念。

2025-03-01

记忆化斐波拉契数列,C语言

记忆化斐波那契数列程序(C语言实现) 内容概要 本资源是一个使用记忆化技术实现的斐波那契数列程序,采用C语言编写。记忆化技术通过存储已经计算过的斐波那契数,避免重复计算,显著提高了计算效率。程序展示了如何利用数组来实现记忆化,并提供了清晰的代码示例。 适用人群 C语言初学者 算法学习者 对动态规划和记忆化技术感兴趣的开发者 需要优化递归算法的程序员 使用场景及目标 学习记忆化技术:通过阅读和运行代码,理解记忆化在递归算法中的应用。 优化递归算法:在需要高效计算斐波那契数列或其他递归问题时,直接使用或参考本程序。 面试准备:作为动态规划和记忆化技术的参考实现,帮助掌握相关算法思想。 其他说明 代码语言:C语言 包含详细的注释和示例,便于理解和调试。

2025-03-01

C语言归并排序代码(复杂度为n对数)

归并排序 内容概要 本资源是一个实现归并排序算法的程序。归并排序是一种高效、稳定的排序算法,采用分治法(Divide and Conquer)思想,将数组递归地分成两半,分别排序后再合并。程序提供了清晰的代码实现和示例,帮助用户理解归并排序的工作原理。 适用人群 计算机科学学生 编程初学者 算法爱好者 需要实现排序功能的开发者 使用场景及目标 学习算法:通过阅读和运行代码,理解归并排序的分治思想和实现细节。 项目开发:在需要稳定排序算法的项目中直接使用或参考本程序。 面试准备:作为算法面试题的参考实现,帮助掌握归并排序的核心概念。 其他说明 代码语言:C 包含详细的注释和示例,便于理解和调试。 程序展示了归并排序的递归实现和合并过程,适合初学者学习和进阶者参考。 通过本资源,用户可以快速掌握归并排序的实现方法,并将其应用到实际编程任务中。

2025-03-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除