- 博客(53)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注

原创 玩转Python多进程和多线程,你学废了吗
进程(process)和线程(thread)是非常抽象的概念, 也是程序员必需掌握的核心知识。关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”。这样一句话虽然简单,但是在实际的开发当中可没有这一句话这么简单,毕竟多进程和多线程编程对于代码的并发执行,提升代码效率和缩短运行时间至关重要。接下来将介绍如何使用python的multiprocess(进程) 和 threading(线程) 模块进行多线程和多进程编程。
2021-01-10 13:41:44
397

原创 JavaScrip利用九宫格原理进行网页布局
前言九宫格的应用,除了在众所周知的九宫格火锅,还分布在互联网的各个网页中,知道九宫格的布局原理,其他的布局不就一键生成了嘛
2020-02-08 15:00:47
407
原创 LeetCode34.在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为O(logn)的算法解决此问题。
2024-08-25 17:19:52
237
1
原创 LeetCode100.删除链表的倒数第 N 个结点
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。:你能尝试使用一趟扫描实现吗?
2024-08-24 14:33:06
450
原创 LeetCode2.两数相加
给你两个的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以0开头。
2024-08-24 14:02:11
337
原创 LeetCode76.最小覆盖子串
给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串""。注意:对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量。如果s中存在这样的子串,我们保证它是唯一的答案。
2024-08-22 18:59:59
317
原创 LeetCode239.滑动窗口最大值
给你一个整数数组,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。
2024-08-20 19:14:29
367
原创 LeetCode41.缺失的第一个正数
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为O(n)并且只使用常数级别额外空间的解决方案。
2024-08-19 11:05:35
247
原创 LeetCode238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。,且在时间复杂度内完成此题。
2024-08-18 15:19:51
390
原创 LeetCode283.移动零
给定一个数组,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。
2024-08-17 16:30:57
331
原创 LeetCode49.字母异位词分组
给你一个字符串数组,请你将组合在一起。可以按任意顺序返回结果列表。是由重新排列源单词的所有字母得到的一个新单词。
2024-08-16 16:48:32
321
原创 YOLOv8使用COCO评价指标,解决AssertionError: Results do not correspond to current coco set.
YOLO评测指标和COCO评测指标还是有些区别的,通过数据表明YOLO评测指标要比COCO评测指标高2,3个点都是正常的。跟着流程走吧!!
2024-06-06 15:50:10
2236
10
原创 EfficientSam封装API
CVPR 2024 满分论文!Meta提出EfficientSAM:快速分割一切!EfficientSAM采用蒸馏的方法,将模型压缩,虽然精度上比对SAM有所欠缺,但是进行加速了图像编码的速度。官方虽然进行了示例代码,但是还是感觉不好用,所以又进一步封装了代码。主要包含prompt 模式和Everthing模式。
2024-04-29 14:25:04
244
原创 解决Cannot re-initialize CUDA in forked subprocess,实现cuda多进程任务
现在遇到一个需求,当我训练好一个神经网络,需要将推理的结果保存在本地,那么一个一个有点浪费时间,如果推理一个batch,然后对这一个batch使用多线程同时保存到本地,那岂不是快的飞起!说干就干,我加载进程池,运行函数,还没怎么高兴,不出意外的出现了意外。但是processes不易设置过大,根据自己性能进行设置。多进程可以加速任务的进行。不牵扯cuda的多进程可以使用。使用,具体的网上很多了就不再一一介绍。接着就正常使用pool的api,
2024-03-22 16:43:10
593
原创 Pytorch实现warm up和consine decay
在深度学习领域,模型训练过程中的不稳定性是一个常见的问题。为了解决这个问题,在Resnet这篇论文也提及了Warm Up的方法,通过逐渐增加学习率,引导模型在训练初期更稳定地收敛。同时在warm up之后结合consine decay的方法让训练变得更有效。
2023-07-12 11:23:51
1707
原创 显著性检测:从传统方法到深度学习网络的演进与挑战
显著性检测技术在计算机视觉领域中扮演着至关重要的角色,它是一项对图像中最显著或最有区别的视觉特征进行分析和提取的技术。显著性检测技术可以为计算机视觉任务提供帮助,例如图像分割、目标检测、场景理解、图像检索和人机交互等方面。本文将从传统方法到最近流行的技术,全面介绍显著性检测技术的发展历程。
2023-05-07 20:51:07
3213
原创 目标检测简介
这些方法包括基于滑动窗口的方法(如Viola-Jones算法)、基于区域提议的方法(如Selective Search)和基于部件模型的方法(如Deformable Part Model)。目标检测作为场景理解的重要组成部分,广泛应用于现代生活的许多领域,如安全领域、军事领域、交通领域、医疗领域和生活领域。目标检测的研究领域包括多类别检测、边缘检测、突出目标检测、姿势检测、场景文本检测、人脸检测、行人检测等。然而,深度学习方法也面临着一些挑战,如数据量不足、过拟合问题、尺度变化问题、小物体问题等。
2023-03-17 16:20:21
1137
原创 leetcode_481_神奇字符串
神奇字符串 s 仅由 ‘1’ 和 ‘212给你一个整数 n ,返回在神奇字符串 s 的前 n 个数字中 1 的数目。输入:n = 6输出:3解释:神奇字符串 s 的前 6 个元素是 “122112”,它包含三个 1,因此返回 3。
2022-10-31 21:01:48
164
原创 从初试北京211到走上调剂的坎坷考研路
这篇文章以此来纪念曾经奋斗过的日日夜夜,同时作为一个反面教材,希望看到的人能从中找到一些经验,可以少走些弯路。
2022-07-09 19:59:40
256
原创 leetcode_66_ 加一
题目大意加一给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。思路分析整个的难点就是进位的问题,也就是讨论9出现的位置当最后一位不是9时,加一返回当后几位是9,寻找中间不是9的数加一,后几位变0返回当所有数都是9时,我们只需要构造一个长度比原数组长度+1的新数组,将首元素置为 1,其余元素置为 0 即可当然也可以直接关注在加一后是否为0,代码如下代
2022-02-10 12:20:53
6549
原创 leetcode_53_最大子数组和
题目大意最大子数组和给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组是数组中的一个连续部分。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。思路分析这道题是一个非常经典的动态规划问题。该问题最早于 1977 年提出,但是直到 1984 年才被 Jay Kadane 发现了线性时间的最优解法。暴力破解一开始确实没什么思路,直接一点就是暴力破解么。因为返回的是数组不是子数组,相对简单,只需要比
2022-01-19 22:46:00
540
原创 leetcode_35_搜索插入位置
题目大意搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。nums 为无重复元素的升序排列数组思路分析看到nums是一个有序的数组和O(log n)的算法可以想到是二分查找,毕竟有序是二分查找的前提。不重复说明返回值唯一。我觉得唯一的难点在于边界值得处理上:一开始设置的的hight = nums.length , 出现了越界的错误,调整到nums.length-
2022-01-17 18:21:16
268
原创 leetcode_26_删除有序数组中的重复项
题目大意删除有序数组中的重复项给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。输入:nums = [0,0,1,1,1,2,2,3,3,4]输出:5, nums = [0,1,2,3,4]解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。
2022-01-16 13:43:08
569
原创 leetcode开门见山-两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应。但是,数组中同一个元素在答案里。你可以按任意顺序返回答案。
2022-01-12 17:22:23
3682
原创 女友帮我整理的阅读理解题型
⭐️考研阅读做题小tps⭐️1️⃣ 先看题干,后看文章2️⃣ 重点关注形容词和副词,这类词性表示作者态度3️⃣ 秉持少数人观点,没有人认为的通常是需要辩解的4️⃣ 正确选项的答案通常是缓和的 带有some, may5️⃣ while 在句子中大可能表示对比6️⃣ Now的出现要引起注意题型大概如下1.因果关系题2.例证题3.细节题4.中心思想题5.作者态度题6.推理判断题7.词汇题1.因果关系题标志 ????because, since, as, for + 句子derive f
2021-07-31 11:04:49
184
转载 Vue的生命周期
Vue实例有一个完整的生命周期,也就是从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、卸载等一系列过程,我们称这是Vue的生命周期。通俗说就是Vue实例从创建到销毁的过程,就是生命周期。在Vue的整个生命周期中,它提供了一系列的事件,可以让我们在事件触发时注册js方法,可以让我们用自己注册的js方法控制整个大局,在这些事件响应方法中的this直接指向的是vue的实例。特别值得注意的是created钩子函数和mounted钩子函数的区别每个钩子函数都在啥时间触发beforeCre.
2021-01-22 16:44:07
139
原创 Vue路由 VueRouter
安装直接下载 / CDNhttps://unpkg.com/vue-router/dist/vue-router.jsUnpkg.com 提供了基于 NPM 的 CDN 链接。上面的链接会一直指向在 NPM 发布的最新版本。你也可以像 https://unpkg.com/vue-router@2.0.0/dist/vue-router.js 这样指定 版本号 或者 Tag。NPMnpm install vue-router如果在一个模块化工程中使用它,必须要通过 Vue.use() 明确地
2021-01-22 16:32:01
162
原创 Vue共享数据模式 VueX
前言Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。举一个简单的例子,都知道父子组件通信,那么兄弟组件通信怎么办那?可能有人想到先把子组件的数据传递到父组件中,然后兄弟组件接收父组件中的数据。诚然这样的方式确实可以实现我们的需求,可要是嵌套的过多的话,那么麻烦吗?答案是肯定的!简单来说,VueX 可以帮助我们共享数据,和组件一样,实现复用。Vuex 使用单一状态树,用一个对象就包含了全
2021-01-22 13:13:54
213
原创 Vue插槽的使用
这里主要介绍插槽。什么是插槽?在定义组件之后我想在html中另外新加入几个内容,这种情况肯定不可能再重新从组件模板中添加。插槽可以解决这个问题。基础实例<div id="app"> <father title="这里是标签"> 插槽的使用 </father></div.
2021-01-19 21:26:04
161
原创 Vue的父子组件通信
前言组件注册在上个文章中介绍了组件的注册,包括局部注册和全局注册。这里将介绍父子组件以及父子组件之间的通信方式。父子组件父子组件,顾名思义就是在组件中套用组件形成父子关系,一个简单的实例如下:<body><div id="app"> <father> </father></div><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></
2021-01-18 21:34:24
147
原创 Vue的组件注册
第三章着重介绍组件(component )的使用。和指令,过滤器一样,组件可以分为局部组件和全局组件,定义方式也都大同小异。在真正介绍component之前,先介绍 Vue.extend({Object} options) 。Vue.extend()使用基础 Vue 构造器………………………………………………………………………………………………………………………………
2021-01-17 22:58:54
266
原创 Vue的methods、computed、watch、filter对比分析
本文主要是对之前提到过的methods,computed,watch进行区别对比,相应的实例已经在之前的文章提及,如果有忘记的可以回顾康康呀!
2021-01-16 13:35:10
616
原创 Vue的过滤器
前面介绍到了计算属性和侦听属性,除此之外Vue还专门提供了过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号|指示。
2021-01-16 13:00:44
156
原创 Vue的侦听属性
前面提到了计算属性,虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的侦听器。这就是为什么 Vue 通过 watch 选项提供了一个更通用的方法,来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。
2021-01-15 20:44:55
255
原创 Vue的计算属性
在介绍完前面的指令后,接下来是对一些计算对象的介绍。当然之前已经提及了在Vue()中的methods对象,这是一个方法对象,虽然它已经能够处理大部分的逻辑,但Vue另外提供了一些计算方法供我们选择
2021-01-15 17:26:21
216
原创 Vue自定义指令
前言第一章——v指令的使用在上一篇文章中介绍到在Vue中一些指令的使用,按照官方的说法在 Vue2.0 中,代码复用和抽象的主要形式是组件,然而,有的情况下,仍然需要对普通 DOM 元素进行底层操作,这个时候就需要用到自定义指令。...
2021-01-15 13:35:01
153
转载 十大经典排序算法,你学废了吗?
排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。
2020-10-08 20:03:05
416
原创 什么?你还不会使用Markdown?快来看看吧
Markdown是什么?Markdown是一种轻量级的标记语言,可用于将格式设置元素添加到纯文本文档中。Markdown由John Gruber于2004年创建,如今已成为世界上最受欢迎的标记语言之一。 使用Markdown与使用WYSIWYG编辑器不同。在Microsoft Word之类的应用程序中,单击按钮以设置单词和短语的格式,更改立即可见。Markdown不是那样的。当您创建Markdown格式的文件时,可以在文本中添加Markdown语法,以指示哪些单词和短语看起来应该有所不同。为什么要.
2020-09-26 11:19:52
553
深度学习和参数相乘,矩阵维度不一致
2021-07-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人