自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 卡尔曼滤波器

卡尔曼滤波器就像一个聪明的猜测器。它的任务是在不确定的环境中,结合不完美的信息,给出最靠谱的估计。比如,你在开车时,GPS告诉你当前位置,但GPS信号可能有误差;同时,你的车速表告诉你速度,但速度表也可能不准。卡尔曼滤波器的作用就是把GPS和车速表的信息结合起来,给出一个更准确的位置和速度估计。

2025-02-20 16:37:33 855

原创 高斯消元法求逆矩阵的时间复杂度

高斯消元法求逆矩阵,即求解矩阵方程。

2025-01-21 22:35:34 682

原创 JAVA多线程——线程调度

notify()是唤醒一个在等待的线程,notifyAll() 是唤醒所有在等待的线程。系统为这个线程分配了它需的系统资源,安排其运行并调用线程运行方法,该线程处于可运行( Runnable )状态,一旦受到调度信息就可以转换成运行状态。两个(或多个)线程互相持有对方需要的资源,并且两个线程都需要使用对方的资源,这样两个线程会一直等待对方先释放资源,造成阻塞情况。,队列中只有一个元素[5],此时由于没有同步机制,跳转到消费者线程,执行消费者函数,满足if条件,打印出。该线程执行结束或强行停止,不可再恢复。

2024-12-10 22:32:03 750

原创 Python与C++内存管理的差别

Python变量存储Python中的变量存储与C++类似(所有编程语言的存储结构均类似),建立函数时在开辟一块堆空间,函数中的局部变量以及形参都放在栈空间中,定义动态变量放在堆空间中;与C++不同的是,Python对堆空间的数据有自动回收机制,简单来说就是Python堆空间变量都自带一个计数器,当一个变量长时间不被访问时它的计数器会始终为0,则会被系统回收。Python堆空间变量存储形式如下:需要注意的是,在Python语言中,所有变量名都是一个引用,它们的值均放在堆空间中,也就是说在函数中定义变量,

2024-10-24 19:14:58 288

原创 CUDA是如何工作的

CUDA(Compute Unified Device Architecture)是NVIDIA推出的一种并行计算平台和编程模型,有了这个平台开发者可以使用高级语言(如C语言)直接开发GPU,编写高效并行计算程序。GPU 可以同时调度多个 warp 来隐藏计算中的延迟,尤其是当线程等待内存访问时,通过调度其他 warp 的线程继续执行,从而避免因等待内存数据而导致的性能损失。

2024-10-20 23:07:56 1878 1

原创 堆栈在内存管理中的作用

栈是计算机内存中用于管理局部变量和函数调用的一块区域,它遵循后进先出(LIFO, Last In First Out)的原则。我们可以将栈想象成一个叠盘子的架子,后放入的盘子总是最先被取出。堆是用于动态内存分配的内存区域,它不像栈那样由编译器自动管理,而是由程序员手动控制内存的分配和释放。当我们需要在程序运行时申请一块动态内存空间时,堆是我们要使用的区域。

2024-10-20 08:59:31 953

原创 多臂老虎机问题

评估的策略,基于偏好的策略会根据每个动作的表现相对于其他动作的好坏来调整其选择概率,例如,如果某个动作的回报高于平均值,它的偏好就会慢慢增加,但不会立即大幅改变选择概率,而是逐步调整。以上两种策略以及传统的贪心策略都是基于价值评估的策略,依赖绝对数据,决策较为确定,忽略其他动作的潜在趋势;体现对动作a价值估计的准确性,探索a的次数越少,这一项对应的值就越大,就越有概率再次探索到这一老虎机。,这样可能不会有探索其他老虎机的机会,为了避免这个问题,提出改进的贪心策略——例如,即使某个动作的回报增加,

2024-10-17 23:48:35 957

原创 一些AB实验的问题

AA实验是一种在进行AB实验之前或者同时进行的测试,旨在验证实验的分流系统和方法是否正常工作。在AA实验中,两组(通常称为A组和A’组)用户都会接受完全相同的处理,即两组看到的是相同的版本,没有任何变化。通过这种方式,AA实验用来验证实验系统的分流是否均匀,测试数据收集和分析的准确性,以及确保两组的基线是相同的。如果在AA实验中发现两组之间有显著差异,那么说明实验的分流、数据收集或分析方法可能存在问题,这需要在进行AB实验之前修正。即:AA实验是AB实验的准备步骤,旨在确保实验环境的可靠性和。

2024-10-17 11:00:09 945

原创 python为什么运行慢

这样可以保证引用计数的线程安全,避免复杂的锁机制。然而,Python 的 GIL(全局解释器锁) 是一种粗粒度的锁机制,它并不是在需要保护共享资源时才加锁,而是从始至终都将整个 Python 解释器锁住,确保任何时刻只有一个线程可以执行 Python 字节码。中,代码是逐行执行的,每一行代码在执行之前都需要被解释器解析。这意味着每次遇到一行新的代码,就需要触发一次解释器,解释器都会解析这行代码的语法结构、变量、函数等,进行必要的解释工作,这个过程不仅包括语法检查,还包括运行时的类型检查和函数查找等操作。

2024-10-15 22:30:56 363

原创 pytorch与CUDA版本匹配(基于conda管理系统)以及GPU和CPU训练模型速度对比

是一个包含 Conda 的数据科学平台发行版。它预装了许多常用的数据科学包和工具,适合初学者或希望快速搭建数据科学环境的用户。是一个开源的软件包管理系统和环境管理系统,它可以快速安装、运行和更新软件包及其依赖项。例如我的cuda版本是12.1,则可在终端运行下面这条指令安装pytorch全家桶。这里提供一个小型的神经网络程序,用来观察CPU和GPU训练模型速度的快慢。安装完成后运行下面程序即可判断安装是否正确。可以看出GPU可以显著提高模型的训练速度。anaconda安装可参考。

2024-07-30 17:33:37 501

原创 Debian中打开asciiquarium水族馆

Debian在安装asciiquarium之前,需要先安装libcurses-perl包。如果运行后出现下面的错误,说明还需要安装Term::Animation这个模块。是 Perl 的官方包管理工具,它可以自动处理依赖关系,简化模块的安装过程)asciiquarium运行依赖于libcurses-perl。安装完成后即可运行asciiquarium命令,看到水族馆了。然后运行asciiquarium即可。之后再安装asciiquarium。是一个 Perl 模块,

2024-07-01 17:22:57 305 1

空空如也

空空如也

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

TA关注的人

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