- 博客(84)
- 问答 (1)
- 收藏
- 关注
原创 yolov11剪枝、蒸馏、加注意力
`step1_train()`:加载预训练模型并开始训练。- `step2_Constraint_train()`:在约束条件下进行训练,例如可能涉及到正则化或其他约束条件。- `step3_pruning()`:使用自定义的`do_pruning`函数对模型进行剪枝,以减少模型的复杂度。- `step4_finetune()`:微调剪枝后的模型。
2024-12-04 22:41:42
2828
21
原创 从熟练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
原创 使用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
原创 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
原创 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
空空如也
shotdown -a不能取消关机设定咋回事?
2022-04-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人