自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 windows安装g++14

中文平台搜出来一堆老版本的g++安装,安装之后发现是6.xx。太老了,执行总出问题。再添加bin目录进path系统变量,我的bin目录如下。

2025-04-04 18:58:04 81

原创 分页查询的sql优化

FROM good_info order by create_time desc LIMIT 1000000, 20),此时create_time 的索引树叶子结点不存在我们需要查询的值,需要回表查询。标签法利用历史分页记录来实现,结合了实际的应用场景,我们想象一下在社交论坛列表或者电商商品列表中,用户的行为总是向下滑。的条件是非常理想的,如果服务有分布式的需求的话,可能会将 id 变更为分布式一致性 id,比如雪花 id 等。比如 create_time 的索引树叶子结点存在我们需要的主键的值,那么。

2025-03-03 12:19:00 916

原创 object对象的wait()方法和notify()方法

从执行顺序上来看,也验证了wait方法会释放锁,否则的话,“main线程 获得了锁,然后调用 notify方法” 这句话就不会打印,notify()方法也不会执行,那么t1线程就会一直等待,就。wait(),notify()和notifyAll()只能在synchronized 的同步控制方法或者同步控制块里面使用,否则会报。并且必须是synchronized的小括号里的对象来执行wait(),notify()和notifyAll()方法。所以wait方法一定是要释放到当前线程所持有的锁的。

2025-02-24 14:59:15 169

原创 什么情况下Transactional注解会失效?从原理分析,绝对细节且易懂

当你在spring里给某个方法添加了@Transactional时候,该类就会被spring的IOC容器动态代理,这样@Transactional才会生效。Controller类,注入DemoserviceImpl类的对象,并调用insert方法。假如DemoserviceImpl类的对象是new出来的,这个对象就不是IOC容器管理的,这时候执行insert方法上的@Transactional注解自然就失效了。但如果是@Autowired出来的,就会生效。Demoservice接口的实现类Demoservi

2025-02-23 23:45:04 236

原创 java中的Entry类,map接口

作用:当Map集合一创建那么就会在Map集合中创建一个Enty对象,用来记录键与值(键值对对象,键与值的映射关系)->结婚证。Map.Enty<KV> 是在Map接口中的一个内部接口Entry。可用于实现对Map的遍历。

2025-02-22 20:46:15 166

原创 Redission可重试、超时续约的实现原理(源码分析)

如果获取锁失败,用语句“PTTL KEYS[1]”返回当前锁的剩余有效时间。最终返回到tryLock()函数里,成为局部变量ttl的值,如果获取锁成功,返回nil,也就是java里的null。执行获取锁的lua脚本时,会返回一个值,time是剩余等待时间的值。

2025-02-22 18:25:28 367

原创 1.为什么你写的拦截器注入不了Java bean?(使用@autowired注解的注意事项)

@controller, @service等扫描这个类到容器中。在类中的变量加@Autowired注解无法生效。如果一个类没有加注解如@

2025-02-20 17:17:51 134

原创 BiFunction<String, Object, Object>

BeanUtil.beanToMap()细节

2025-02-20 16:55:39 161

原创 HttpSession类的对象session:保存的数据谁有权限读取?

服务器的response Headers里就会返回set-cookie,前端自动保存这个JSESSIONID,之后每次请求都会在请求头里带上这个JSESSIONID,Spring 框架会自动将同一个JSESSIONID的请求视为同一个用户。由于 HttpSession 是基于会话的,同一个用户的多次请求会共享同一个 HttpSession 对象,因此 login()方法可以通过 session.getAttribute("code") 获取到之前保存的验证码。

2025-02-20 11:53:50 428

原创 SpringDataRedis的使用(java操作redis数据库)

存<key:value>为<String,Object>的数据到redis数据库

2025-02-14 19:20:13 331

原创 ArrayList的迭代器判断是否发生并发异常?(迭代器读取数据期间是否发生增加修改删除数据)

ArrayList对象里有一个modCount值,他表示ArrayList里元素的操作次数,每add一次,会使得modCount++,remove删除一次也会使得modCount++。使用会得到一个内部类Itr的对象,其中会记录modCount在创建迭代器对象时候的值,当执行it.next()的时候会执行checkForComodification()函数。

2025-02-05 20:22:23 164

原创 JDK 8 的HashMap扩容源代码分析

方法,用于在哈希表容量不足时扩大数组长度,并重新分布所有元素。:将旧数组中的元素重新分配到新数组中,确保哈希表的均匀分布。在链表迁移时使用尾插法,避免多线程环境下的链表死循环问题。方法将树拆分为两个链表,再判断是否需要退化为链表。拆分链表为高低位两部分,直接分配到新数组的对应位置。:保持链表的原有顺序(避免多线程下的死循环问题)。)时,扩容数组以减少哈希冲突,保证查询效率。,新索引 = 原索引 + 旧容量。假设旧容量为 8,某个桶的链表为。(原索引 + 旧容量位置)。,新索引与原索引相同。

2025-02-03 16:37:25 377

原创 throws意义,检查型异常(编译时异常)和非检查型,throws用法。throw和throws的区别

throws关键字的作用是明确声明方法可能抛出的如等,在编译时处理。若方法内部可能抛出检查型异常,必须通过以下两种方式之一处理:使用try-catch块捕获并处理异常。在方法签名中用throws声明异常,将处理责任交给调用者。如及其子类(如),无需在方法签名中声明,也不强制调用者处理。throws。

2025-02-02 22:45:29 421

原创 java异常处理——try catch finally

相比不用throws Exception,加上了throws Exception后,调用该方法时,必须加上try...catch才可以(你加上throw exception。相当于一种约束,如果不加throws Exception,在多个地方调用方法时,添加try...catch也可以,但是有时候就会忘记加try...catch。6,运行异常(继承RuntimeException)可以不捕获,向上抛,如果一直没有处理,则jvm会自动处理(停止线程,打印异常)。---非运行期异常,必须捕获或者在方法声明。

2025-02-02 22:04:37 523

原创 ubuntu设置开机无需输入密码自启动todesk,内网穿透natapp

注:脚本内容必须包含 ### BEGIN INIT INFO ...... ### END INIT INFO。2.新建一个自定义名称的sh脚本,这里以 start_todesk 名称为例建立一个 start_todesk.sh 的脚本。1.进入/etc/init.d/目录。最后重启系统即可:reboot。4、然后执行以下命令。附:取消开机启动脚本。

2025-01-08 16:21:13 592

原创 Ubuntu挂载Windows 磁盘,双系统

首先我们需要在终端输入这个命令,来查看磁盘分配情况lsblk -f找到需要挂载的磁盘,检查其类型( 我的/dev/nvme2n1p1类型是ntfs,名字叫3500winData)然后新建一个挂载磁盘的目录,我的是/media/zeqi/3500winData关于mount的详细参数与用法,可以自己查询,这里不做过多解释。

2025-01-07 20:48:51 593

原创 用ssh协议传文件

win+x我想把远端ubuntu服务器上的文件传输到本地windows电脑。

2024-12-20 13:30:30 443

原创 vscode的deubg模式调试torch.distributed.launch

则 launch.json文件配置如下:(注意"program": "/home/zeqi/.conda/envs/LATR117/lib/python3.8/site-packages/torch/distributed/launch.py",。"pythonPath": "/home/zeqi/.conda/envs/LATR117/bin/python", // 修改为你的 Python 环境路径。//"debugOptions": ["RedirectOutput"], // 确保输出重定向。

2024-12-19 02:10:56 414

原创 openlane

openlane数据集,lane3d_1000里训练集157807张图片,测试集40183张图,md太多了。

2024-12-16 22:08:54 217

原创 在Ubuntu上增加swap交换空间

查看根目录是否有swap或者swapfile文件,电脑里默认有swapfile文件,那么我就更改这个文件,用。count=48,就是48乘1G,就是48G。我原本swap空间大小是32g。终端显示结果如下,就表示创建成功。2,关闭交换空间,这一步很重要。下进行添加,使swap永久生效。4.使交换文件成为交换空间。3.设置文件交换权限。

2024-12-16 21:36:57 718

转载 深入了解PyTorch中的torch.no_grad()和@torch.no_grad()用法

是一个装饰器,用于单个函数或方法上,以禁止计算该函数或方法中所有张量操作的梯度。这对于那些不需要梯度的函数或方法非常有用,可以避免不必要的计算。块中执行操作时,所有在该块中进行的张量操作都不会计算梯度。这对于评估模型性能或进行推理等任务非常有用,因为在这些情况下,我们不需要计算梯度。中,梯度计算是优化模型参数的关键步骤,但在某些情况下,我们并不需要计算梯度。是一个上下文管理器,用于临时关闭梯度计算。因此,当我们在函数中对张量。块中对它进行了操作。进行操作时,不会计算梯度。在这个例子中,我们创建了一个张量。

2024-10-12 17:03:22 315 1

原创 detectron2是怎么建立模型的?以SparseInst代码为例【结论版】

看SparseInst论文发现论文里有些地方没讲清楚;遂找SparseInst源码来看模型结构。

2024-09-28 16:44:56 252

原创 注册器设计模式,以SparseInst(detectron2)代码为例

注册器类比较关键,需要实现了好几个功能,各种模块的内部函数_do_register负责具体注册的实现;外部函数register暴漏给编码人员,写代码的时候用将被注册的模块(类、函数、等)存在注册器类的字典中。所以一般__init__() 里会初始化一个字典使用函数get,获取已注册对象,传入类的名称,返回这个类的实际实现的引用创建build函数,实例化被注册的模块"""...Or:""""""Args:"""assert (".format(""""""return ret。

2024-09-28 16:44:05 988

原创 python装饰器用法

【代码】python装饰器用法。

2024-09-28 10:29:42 341

原创 jupyter快捷键

命令行模式:(进入命令行模式方法,按esc)单元转入 markdown 状态。分割单元 按光标所在行进行分割。运行本单元,在其下插入新单元。中断 NoteBook 内核。重启 NoteBook 内核。运行本单元,在下面插入一单元。保存当前 NoteBook。保存当前 NoteBook。保存当前 NoteBook。运行本单元,选中下个单元。运行本单元,选中下一单元。单元转入 raw 状态。恢复删除的最后一个单元。D,D(连续按两下D)光标上移或转入上一单元。光标下移或转入下一单元。

2024-09-28 09:45:16 539

原创 python的 __name__和__doc__属性

每个模块都有一个名称,当一个模块被第一次输入的时候,这个模块的主块将被运行。加入我们希望程序本身被使用时运行主块,而在它被其他输入时候不运行主块,可以通过模块的__name__属性完成。__name__属性 用于判断当前模块是不是程序入口,如果当前程序正在使用,__name__的值为__main__。在编写程序时,通常需要给每个模块添加条件语句,用于单独测试该模块的功能。__doc__是类名下紧挨着的三引号注释。

2024-09-27 21:32:55 178

原创 typing里的Dict用法

以上代码:只知道 names 是一个列表 list 类型,但是不知道 names 里面的元素是str类型还是int类型;也不知道 operations这个字典的key和value是什么类型的。只能知道operations是一个字典。是由 int 类型的元素组成的长度为 3 的元组。得知typing里的Dict是用来让python能像C++一样强申明变量类型的。但如果用typing 模块,它提供了非常 “强 “的明确类型申明,比如。表示由 str 类型的元素组成的列表,

2024-09-27 21:21:21 477

原创 detectron2是怎么建立模型的?以SparseInst代码为例【思路版第一部分】

看SparseInst论文发现论文里有些地方没讲清楚;遂找SparseInst源码来看模型结构。

2024-09-27 21:12:41 536

原创 win11删除文件资源管理器里的“百度网盘”“迅雷下载”“WPS云盘”

方法:进注册表,输入路径。如上,看着烦,想删了。

2024-09-18 19:53:13 1221

原创 ubuntu驱动掉了,重装nvidia驱动

得知是gcc版本的问题,应该用gcc12的版本来运行驱动安装文件,但是ubuntu用了gcc11。选择手动模式的gcc12版本。这样系统就不会自动用错成gcc11了(我已经改好)。能看到x86_64-linux-gnu-gcc-12这里显示gcc版本是12。用里面的在线安装方法不行,换成用2.2 离线安装方法。查阅/var/log/nvidia-installer.log。第一次用纯命令行界面,原始的快感!跑深度学习,忽然发现显卡驱动掉了。接下来按教程一路顺利。查看一下系统gcc版本。

2024-09-03 23:21:46 1825

原创 debug模式中调好,正常执行不生效

1.我用debug模式执行demo.py文件,用了下面这个json配置文件。[:200]生效, args.input的值被改为了前两百个。2.但是输入直接执行,发现demo.py中的[:200]不生效,args.input的值没有被改为前两百个,为什么会这样?请给出解决方法。具体来说,当你直接在命令行运行时,args.input并不是一个包含单个路径模式的列表(如),而是已经扩展后的完整文件路径列表。这是因为大多数命令行解析器会自动展开通配符(如。

2024-08-29 12:32:20 470

转载 vscode 调试python代码时添加参数(args)

前提:代码中设置了arg paser,需要手动设置,VS code的debug没有简介的添加参数的方式。

2024-08-29 11:44:20 499

原创 win11,vscode上用docker环境跑项目

在该dockerfile文件的目录下打开终端然后在终端里执行(要挂梯子)经过一段时间的下载之后就能看到镜像。

2024-08-27 20:09:22 625

原创 用docker部署SparseInst项目踩坑

论文:Sparse Instance Activation for Real-Time Instance Segmentation。查询后得知是没安装cython导致,在dockerfile文件里加上安装cython。提前安装pycocotools=2.0.8解决。安装pyyaml==6.0.1版本可正确执行。

2024-08-27 19:39:49 190

原创 安装detectron2报错gcc: error: pycocotools/_mask.c: No such file or directory和 ‘language_level‘ not set

查询后得知是没安装cython导致,在dockerfile文件里加上安装cython。提前安装pycocotools=2.0.8即可。用docker安装detectron2。原本dockerfile为。

2024-08-27 19:33:49 314

原创 VScode打开json文件和md文件直观展示方法

在。

2024-08-26 17:24:45 2084

原创 comfyUI使用flux模型报错got promptUsing pytorch attention in VAE,

使用的flux模型如下,应该下载的模型都已经下载好放在正确位置但是执行之后报错如下got prompt然后comfyUI的命令行就强制退出了。

2024-08-25 22:46:50 2299 3

原创 pytorch函数,unsqueeze,squeeze,transpose,contiguous,gt,

可以看出a的维度已经变为(2,1,3)了,同样如果需要在倒数第二个维度上增加一个维度,那么使用b.unsqueeze(-2)可以看出维度并没有变化,仍然为(1,2,3),这是因为只有维度为1时才会去掉。1. 首先得到一个维度为(1,2,3)的tensor(张量)2. 在第二维增加一个维度,使其维度变为(2,1,3)2.下面使用squeeze()函数将第一维去掉。由图中可以看出c的维度为(1,2,3)可以看出a的维度为(2,3)可见,维度已经变为(2,3)1. 首先初始化一个a。

2024-08-22 10:48:24 254

原创 pip删除所有的包

【代码】pip删除所有的包。

2024-08-21 19:17:55 462 1

原创 python添加进度条,以双线性差值为例

【代码】python添加进度条,以双线性差值为例。

2024-08-21 13:12:34 162

空空如也

空空如也

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

TA关注的人

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