自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 问答 (1)
  • 收藏
  • 关注

原创 通义千问模型微调——swift框架

服务器CUDA Version: 12.2。

2025-03-19 17:36:22 635

原创 通义千问-QwQ-32B推理(transformer框架)

cuda 12.2。

2025-03-10 14:34:04 155

原创 记录torch运行的bug

试试看只使用一个gpu。

2025-02-24 14:58:11 485

原创 yolov11剪枝、蒸馏、加注意力

`step1_train()`:加载预训练模型并开始训练。- `step2_Constraint_train()`:在约束条件下进行训练,例如可能涉及到正则化或其他约束条件。- `step3_pruning()`:使用自定义的`do_pruning`函数对模型进行剪枝,以减少模型的复杂度。- `step4_finetune()`:微调剪枝后的模型。

2024-12-04 22:41:42 2828 21

原创 yolov11剪枝

【代码】yolov11剪枝。

2024-11-26 23:06:02 2157 4

原创 从熟练Python到入门学习C++(record 8)

规则:1.默认参数后面,只能为默认参数;2.在函数中和函数的声明中,两者只能存其一由默认参数;

2024-11-24 15:44:17 202

原创 从熟练Python到入门学习C++(record 7)

内存分为两种:1.在程序运行之前,已经分配好的内存;2.在程序运行之后,才分配内存;这样分配的意义:不同区域存放的数据,赋予不同的生命周期,给程序员更加灵活的编程;

2024-11-23 11:13:46 486

原创 从熟练Python到入门学习C++(record 6)

结构体相对于自定义的一种新的变量类型。四种定义方式,推荐第一种;第四种适合大量定义,也适合查找;int age;}s3;prinf(s1);prinf(s2);prinf(s3);

2024-11-20 17:32:18 449

原创 从熟练Python到入门学习C++(record 5)

首先解释一下int a = 10;计算机不懂什么是a,它首先在内存中找一块地方(4个字节大小),然后写入数字10。当我们打印a的值的时候,它会找到内存地址,读取之前写入的数字;指针表示内存地址,让p指向a的内存地址。那么*p相对于读取这块内存地址的数字,如果给这块内存地址重新赋值(*p = 100),那么再打印a的值时,仍然是先找到内存地址,读取目前写入的数字;

2024-11-20 11:54:01 312

原创 从熟练Python到入门学习C++(record 4)

1.函数返回类型2.函数名3.参数表列4.函数体语句5.return表达式int main()int a, b;cin >> a;cin >> b;return 0;

2024-11-20 09:03:55 307

原创 从熟练Python到入门学习C++(record 3)

2. 流程是从起始表达式开始,条件成立后运行语句,再经过末尾循环体,重复判断条件表达式。(&&,||)相当于python的(and,or)。相当于python的:表达式2 if 表达式1 else 表达式3。发现一个规律,大括号中写程序,圆括号中写判断。break和continue与python中的函数一样。1.整数相除,还是整型,负责为实型;2.前置和后置的区别,赋值规则不同;1. for的圆括号中,使用;注意:在cout时候,需要加括号。3.除和模的分母不能为0;注意:要加括号才能赋值。

2024-11-18 21:49:57 347

原创 从熟练Python到入门学习C++(record 2)

作用:给变量,常量命名;规则:与python一样;1.不能是关键字2.只能由字母、数字、下划线组成3.开头字符不能是数字4.大小写不同,代表不同的标识符。

2024-11-17 18:47:47 318

原创 从熟练Python到入门学习C++(record 1)

对于python,使用的#进行单行注释,以及''' '''进行多行注释。对于c++,使用的是//用于单行注释,/* */用于多行注释。同样可以使用快捷键:ctrl+/在c++中,同样在开头,导入需要的包,相当于是在告诉编译器导入。对于python来说,命名的都是常量,一些特殊方法可以表示常量。对于c++,有两种方法命名常量。在python中,使用import导入各种需要的类,函数。对于c++,用法:数据类型 变量名=初始值。对于python,用法:变量名=初始值。相对于变量,它是不可更改的。

2024-11-17 16:15:21 613

原创 leetcode:布尔运算(动态规划版)

下面的是动态规划的一个模板,dp[i][j][result]表示从s的第i个元素到第个元素,结果为result的方案数。主要是第一层for循环从i到j的长度,长度从小到大,dp可以通过长度小的方案数,推出长度大的方案数。如果知道dp[0][2]和dp[3][5],那么dp[0][5]也可以推出来。开始使用的是DFS,遍历所有可能的情况,发现超时!最近又要考试,勉励自己复习一些之前学过的!假如:x|y|z|v。

2024-09-15 10:20:00 364

原创 如何搜集图片数据集(方法论)

目标检测数据集构建指南目标概述: 当前项目旨在创建一个专注于灭火器的单一类别目标检测数据集。数据集搜集策略一,搜集目前已存在的数据集1.Kaggle数据集(kaggle)2.谷歌数据集(谷歌)3.Amazon数据集(Amazon)4.UCI机器学习资源库(UCI)5.微软数据集(微软)二,爬虫大法1.首先在网站上搜索图片:2.接着找到图片下面的链接,排除广告链接,需要找到图片网站的链接。3.点进去发现又是一个可以搜集图片的网站。循环往复可以搜集到很多可以爬取图

2024-08-30 10:42:43 1433

原创 python中的指令(getitem,__iter__,yield)

菜鸟平时不常用,但是看代码总结的一些常用函数。

2024-08-22 10:24:23 471

原创 python多进程multiprocessing(共享字典)

听老师傅说,在python上线程作用不大,最好还是使用多进程。

2024-08-21 10:21:11 646

原创 使用Dockerfile构建镜像,使用及封装

(2)我们需要在这个目录下放需要执行的文件,并且再创建一个run_sh.sh文件,这个文件可以去执行我们需要的文件。镜像与容器的理解:镜像存在与磁盘中,类似于一个python文件。(1)首先运行镜像形成容器,容器会首先执行我们dockerfile中写到的run_sh.sh文件。注释:id表示CONTAINER ID,指的是运行中的容器。(3)查看构造的镜像,发现出现了一个新镜像。(3)使用这个文件,建立我们的镜像。(5)查看构造的容器,可以看见ID号。(4)使用我们的镜像构造容器。(2)查看目前的容器。

2024-08-15 17:09:31 419

原创 python解决图片内存过大

【代码】python解决图片内存过大。

2024-08-15 16:53:28 393

原创 YOLOv8添加MobileViTv3模块(代码+free)

MobileViTv3是一种为移动设备优化的轻量级视觉Transformer架构,它结合了卷积神经网络(CNN)和视觉Transformer(ViT)的特点,以创建适合移动视觉任务的轻量级模型。在ultralytics/nn创建vit文件夹,文件夹内放MobileViTv3以及需要的包。

2024-08-09 17:01:12 1223

原创 yolov8蒸馏(附代码-免费)

yolov8_蒸馏使用不妨加个关注,后续还会加入Vit(vision transformer),替换loss等提升精度的方法。

2024-08-04 10:57:46 6928 51

原创 yolov8模型剪枝

本文在官方yolov8.2的基础上进行剪枝。

2024-08-01 10:39:53 3338 32

原创 yolo模型训练出的.pt文件过大

只需要把文件中.pt文件读取,重写一遍保存,就能和原来大小一致。经过仔细调查,发现是保存的模型中多了很多数据。

2024-07-28 10:20:48 679

原创 python 二进制规则

例如 2,二进制为‘0b(30个0)10’。反码就是把其中0变成1,1变成0。那就是 要使用(异或),因为0^1 = 1, 1^1 = 0,那么2的反码 = 2 ^ (32个1)= '0b(30个1)01’

2024-06-25 21:52:50 404 1

原创 二叉树搜索序列(python)

解释: 数组 [2,1,3]、[2,3,1] 均可以通过从左向右遍历元素插入树中形成以下二叉搜索树。从左向右遍历一个数组,通过不断将其中的元素插入树中可以逐步地生成一棵二叉搜索树。对于这种找路径的题目,都是这个模板。经历两个for太长了,优化一下。,输出所有可能生成此树的数组。

2024-06-21 15:47:04 195

原创 Mathtype插入word,以及mathtype在word上的卸载

把这些文件夹内存在的这类文件都删掉,带有mathtype.wll的也可以删掉。接着,信任中心,新任设置,受信任的位置。

2024-06-14 11:51:30 1664 1

原创 负数二进制转成十进制

2.num = num^0xffffffff ,其中有八个f。如果a = ’1‘*32,由于a的第0位是’1‘,那么a为负数。

2024-06-01 17:30:42 329

原创 尊享面试.验证二叉树的前序遍历(python)

加入10,4,3,6之后,再加入的数字num在( num<=4),那么肯定不行,在(4<num<6),可以加在6的左子树,在(6<num<10),可以加在6的右子树,在(10<num),可以加在10的右子树。就是说 (num<=4)不行,(4<num)行。每次加入栈中的元素都是(栈顶元素)的左子树的值,(最后弹出的元素)是即将加入数字num的父节点,num是(最后弹出的元素)的右子树的值。(维护每次弹出元素的最大值)是新加入num底线,num必须大于这个值,否则不是二叉搜索树。维护每次弹出元素的最大值。

2024-05-17 16:10:58 316

原创 洛谷模板.Floyd的深度理解(python)

不考虑i==k和j==k的情况(毕竟如果相等,那么edge[i][j]任然等于w或者inf),现在i!=k,那么edge[i][j] = min(edge[i][j], edge[i][k] + edge[k][j]),取值为节点i到j的情况,和节点i到k到j的情况,这里我就简写,i-j 和 i-1-j。edge[i][j] = min(edge[i][j], edge[i][2] + edge[2][j]),这里面存在。的情况,只有这两个吗?如果i和j直接存在路径,那么edge[i][j] = w。

2024-05-15 14:09:07 404

原创 leetcode.K站中转(python)

使用最小堆,每次弹出列表中最小花费的路径,利用steps避免走成一个环。发现我之前的问题,应该就是走进一个环中,导致数据增多,内存超了。那么dp【t】【i】 = min(dp【t】【i】,dp【t-1】【j】+cost【j】【i】),遍历所有路线。使用dp动态规划算法,设dp【t】【i】,表示转到第t站,从src到达i所需的最小花费数;理所当然的想用bfs,n=100肯定不会超时,谁知道题目针对,这次内存超了。开始准备用dfs深度搜索,发现n=100,dfs可能会超时,即使用了剪枝。

2024-05-14 19:11:39 291

原创 leetcode.所有可能的路径(python)

另一种是:从前往后考虑。rec代表的是当前dfs走过的节点,遍历到哪个节点就加进rec尾部,退出哪个dfs,就把当前节点弹出。一种是:从后往前考虑。如果这条路能到n-1节点,那么dfs返回一个rec列表,里面存路径。rec里面有路径,表明能走,如果是[],说明没路。

2024-05-14 15:59:30 198

原创 P5490.扫描线(python)

本题使用扫描线的模板,首先把所有x坐标排序去重,放进列表X中。对于每一块,高=lines[i+1]-lines[i],宽就等于在这一块中,每个矩阵的并。比如说图中,纵坐标在3-5之间,那么高度就是2,其中有两块矩阵并起来,计算并起来的宽度=80-10=70,高×宽就是这一块的面积。如果是1-6,它的左节点就是1-4,右节点就是5-6,我们发现从4到5,实际上差了20,显然不可行。其中需要注意的是,把X排完序,想要从坐标1开始计算,那在X最前面加一个-inf,保证排序从1开始。所有块的面积之和就是ans。

2024-05-13 19:03:35 387

原创 洛谷P3383 【模板】线性筛素数(python)

算法复杂度需要在O(n)附近,log10**8大概在18左右,nlogn应该超时了,不过python做这题,怎么尝试也会超时。接着改变数据结构,vis改编成字典会节省一部分内存,不过还不行。两个for循环,把i的j倍都设置成false。看了b站学习线性筛,相当于找到数学上的规律,剪枝。算法只能尽量精简,不断剪枝优化。

2024-05-09 15:56:27 319

原创 尊享面试100(272.最接近的二叉树搜索值|| python)

刚开始想着用最小堆,把每个元素都加进去,然后找出最小的k个值,复杂度应该是(n+klogn)3.双指针,一个指针向左走,一个指针向右转,距离target最小的节点的值保留。终于发现,题目给的是二叉搜索树,特点是:左子节点<当前节点<右子节点。复杂度为(n+logn+k),四舍五入满足题目的条件。2.找到第一个大于target的值。题目要求在(n)的复杂度下解决。1.把所有节点都放在列表ls中。

2024-05-06 19:21:55 299 1

原创 尊享面试100题(314.二叉树的垂直遍历python)

回顾一下,发现init_idx这个函数没必要,他目的是,如果中间节点root的列的编号为0,那么最左边节点的列的编号为self.idx,可以推出,如果最左边节点列的编号为0,那么root排在第-self.idx列。可以省掉这一步,直接设置root节点为第0列,左节点为-1列,右节点为第1列,最后在把列排个序。这样的话,左节点-1直接变道0,root变道1,右节点变道2.刚开始我使用的还是dfs,发现过程确实复杂一些,不能从上到下遍历。题目关键词,从左到右,从上到下,那么使用bfs宽度优先算法。

2024-05-06 18:47:57 468 1

原创 leetcode尊享面试——二叉树(python)

对于当前节点node,他的左子树血脉纯净(为同值子树),右子树血脉纯净(为同值子树),node的值等于左右子树节点的值。全是if判断,推理!

2024-05-05 16:14:11 320 1

原创 leetcode尊享面试100题(549二叉树最长连续序列||,python)

思路使用dfs深度遍历,先想好这个函数返回什么,题目给出路径可以是子-父-子的路径,那么1-2-3可以,3-2-1也可以,那么考虑dfs返回两个值,对于当前节点node来说,返回一个顺序的长度的最大值p,一个逆序长度的最大值b,初始值都为1。例如,当前节点值为3,下面有两个子节点1-2,那么p为3,b仍为1。这是返回的值,那么对于当前节点,以node为终点的最大长度=max(p,b),还有一种经过node节点的路径需要考虑,例如,左节点为1,右节点为3,当前节点为2。题目不长,就是分析时间太久了。

2024-05-05 15:43:49 284

原创 LeetCode面试298,二叉树最长连续序列(Python)

从上到下遍历,建立一个dfs(u, v, length),u为v的父节点,v为u的子节点,length以父节点为最后一个节点的序列长度(初始长度为1)如果子节点刚好比父节点大1,那么length + 1,反之,length = 1。题解中提出一种思路可以同时进行dfs,只用把所有节点遍历一遍。但是这样需要两个dfs分别进行,那么时间复杂度就上去了。开始想着dfs,两种情况。2.不以root为根。再继续遍历v的子节点。

2024-05-03 19:17:24 496 1

原创 欧拉回路(leetcode 重新安排行程)

再重新分析一遍第一部分,节点1--> 节点2-->节点3-->节点1,发现最终到达节点1的时候,无路可走,节点3又可以走其他路,那么可以推出,从节点3-->节点1这一段路应该是最后的一段路。第一部分:那么算法的流程是,节点1--> 节点2-->节点3-->节点1。第一部分的流程变成:节点1--> 节点2-->节点3--> 节点4--> 节点6-->节点7-->节点4-->节点5-->节点3-->节点1。第一部分的流程变成:节点1--> 节点2-->节点3--> 节点4-->节点5-->节点3-->节点1。

2024-05-02 19:09:09 540

原创 latex文中参考文献排序

导言区添加包,能保留原来的期刊要求的排序,在文章中参考文献的顺序也可以从大到小排序。有时候在文章中,参考文献是乱序。

2024-04-29 16:34:04 345

空空如也

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

TA关注的人

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