- 博客(51)
- 收藏
- 关注
原创 子集 宏观+微观 python 思路
现在写微观,微观就是,写递归函数,自从nums原始数组开始传递的时候,这个传递的逻辑是什么?怎怎么递,什么时候归(回溯)如果不对当前的路径进行保存,那么在回溯(即撤销选择)之后,当前路径的信息就会丢失,因为它会被新的选择覆盖。self.backtracking() #不知道回溯的传参是啥,先空着,,等下面回溯函数写好了再回头写。self.backtracking() #不知道回溯的传参是啥,先空着,,等下面回溯函数写好了再回头写。这样写不对,要传具体的参数就一起传递,保持一致,不然报错!
2024-09-08 19:16:41 139
原创 全排列 python 宏观+微观 思路
传参:首先传self,因为是class solution下的,还有nums原始的数字是什么,是否已经使用used,收集单个结果的path(想象一下,每条树的路径就是一个子集结果),还有最后的大的结果result。现在,我们把最原始的nums已经拆成3个了,并且加入了子集path,并且通过used标记了这个数字我们有没有遍历到,这时候,可以开始下一层的遍历逻辑了。到这里就结束了,这两个操作共同保证了算法能够正确地回溯到之前的状态,并尝试不同的元素组合,直到找到所有可能的排列。注意,这里开始有趣了。
2024-09-07 20:28:39 582
原创 从二叉树看类,对象和面向对象编程
实际上,递归函数里面的root就是类的活体,本来这个类就是一个节点的类里面有三个属性,root就是类的活体,是root赋予类生命,让root能在递归函数里面成为能够动态执行函数的节点,如果没有root,类就是死的,只是一个设计图,所以可以任意调用类里面的属性。之所以叫做,面向对象编程,是因为对象是用在函数里面用来执行任务的,但是这个对象需要有一些属性或者本身就应该有的行为,所以需要提前在类里面定义这个对象的属性或者行为。类型的对象,这个对象可以是树中的任何一个节点,而不仅仅是根节点。当你在递归函数内部写。
2024-09-06 13:46:00 355
原创 递归递归先递后归二叉树与递归(回溯)
浅谈个人对二叉树递归理解三句话总结分而治之先递后归归即是回溯二叉树是一个大的树有左子树和右子树,我要对整个二叉树做后序遍历,宏观上看,就是把整个二叉树按照左右根的顺序遍历一遍,放进一个列表。但是二叉树有左有右,每个二叉树又看成是分裂成很多很多个小的二叉树,刚刚说了,宏观上,我是左右根的顺序遍历。好,现在来到左边,左边也是一个独立的二叉树,也是要左右根的顺序遍历的,好,那就从头到尾,尾巴就是叶子结点,终止条件就是root当前节点是空的说明没了就停了。
2024-09-06 13:14:51 355
原创 YOLOV8网络结构|搞懂head
head里面的模块之前在backbone出现过的,有conv和c2f,还有concat是新的,就是用来做连接的,就是把几个通道的输出给连接起来,有C,H,W三个维度的,就看最后连接的参数,是按照哪个方向把他们加起来,没有可以学习的参数。upsample是直接继承的nn.Upsample,上采样,就是把图片放大;也是没有能学习的参数。还有三个Detect检测头。yolov8的检测头是解耦头,每个头都有2个分支。相比yolov5,v8的检测头计算量增加了很多。
2024-08-18 21:20:29 323
原创 YOLOV8网络结构|搞懂Backbone-C2f
经过一个bottleneck就是加一个c。c2f没有改变图像的输入通道数和分辨率。d是模型缩放里面的depth。split成两个分支:a和b。有n个bottleneck。传进去的和传出去的没变。
2024-08-18 17:37:20 238
原创 YOLOV8网络结构|搞懂Backbone-Conv
(输入通道*w)*(输出通道*w)*k^2+(输出通道*w)*2。输出通道c2=64,k=3,s=2。再搭一个forward前向传播。w是模型缩放里面的width。P1/2 特征图变小一半。
2024-08-18 13:00:27 263
原创 【Opencv】模糊
img_blur = cv2.blur(img,(k_size,k_size)) #窗口是正方形,也可以是不同的值,就是选择窗口大小。k_size = 7 #窗口大小,数字越大,模糊越强。
2024-07-29 23:54:12 370
原创 【Opencv】色彩空间 color space
import osimport cv2img = cv2.imread(os.path.join('.','dog.jpg'))cv2.imshow('img',img)cv2.waitKey(0)img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)cv2.imshow('img_rgb',img_rgb)cv2.waitKey(0)img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)cv2.imshow('img_gray
2024-07-29 23:15:54 369
原创 【OpenCv】裁剪
cropped_img = img[320:640, 420:840] #指定裁剪的高,和宽。# 320:640是指定高。# 420:840是指定宽。
2024-07-29 22:29:53 258
原创 【YOLOv8】修改默认的配置文件
YOLO 设置和超参数对模型的性能、速度和准确性起着至关重要的作用。这些设置和超参数可以影响模型开发过程各个阶段的模型行为,包括训练、验证和预测。Ultralytics 命令使用以下语法:其中,TASK(可选)是(检测、分割、分类、姿势)之一。MODE(必需)是(train、val、predict、export、track)之一。ARGSarg=valuepairs likeimgsz=640python界面默认ARG值是通过文件定义的。Tasks 任务。
2024-07-26 23:54:28 802
原创 【yolov8】|小目标优化|:增加CA机制 运行成功
CA:注意力机制增强yolov8对于小目标的识别,加入CA机制机制可以同时捕获远处的空间和通道信息,显着提高模型针对复杂情况准确定位和识别目标物体的能力“CA机制纳入YOLOv8的主干网络中,并与C2f模块相结合,将C2f模块重新设计为C2f_CA,可用于替换网络中原有的C2f模块。这里有几个点要注意,网上的有的代码是不对的,这份是对的,可以跑起来。inp, reduction=32): # 这里是输入通道的inpinp,
2024-07-25 23:59:11 1776 1
原创 【算法刷题】【力扣】| 最长回文子串|
这段代码利用了中心扩展的方法,通过遍历字符串和从每个可能的中心向两边扩展来找到最长的回文子串。这一行代码是在检查当前找到的回文子串的长度是否大于之前记录的最长回文子串长度。在这个过程中,程序会不断地向两边扩展,直到不能形成回文串为止(即。表示当前扩展出来的回文子串的长度。,就说明找到了一个更长的回文子串,因此需要更新。"aba" 同样是符合题意的答案。
2024-07-23 23:10:18 416
原创 将半自动化标签绘制在原图上
用yolov8的推理,做了半自动化标签处理。yolo的标签格式是:标签 + 每个顶点的坐标比如:第一个数字0是类别,后面是每个顶点的坐标,(x,y)这样的。而且可能是多行的所以,要把标签画在原图上,看看打的对不对。画标签到原图上.py。
2024-07-22 23:02:01 625
原创 YOLOV8-【Autodl | 命令行方式】跑语义分割训练自己数据集
如果在云服务器跑yolov8,总结起来就是:1、首先,要在本地准备好格式化的数据集,data,到时候用xftp7直接传到云服务器2、在云服务器,要新建两个东西;第一个是,下载ultrlytics包的虚拟环境第二个是,存放实例化数据的文件夹,放data和配置文件3、进入云服务器,的虚拟环境,下载ultrlytics包进入新建的文件夹,传输data和mydata.yaml4、在正确的虚拟环境,及正确的文件夹下(缺一不可),开始跑训练~/ptyolov8以上两个的区别是,第一个是直接把。
2024-07-13 00:54:31 1195
原创 【数据集划分——针对于原先图片已经整理好类别】训练集|验证集|测试集
【代码】【数据集划分——针对于原先图片已经整理好类别】训练集|验证集|测试集。
2024-06-28 00:09:42 282
原创 【数据科学】学习资源汇总(不定时更新)
好书推荐:BooksPDF/数据科学/Python数据科学手册.pdf at master · zhixingchou/BooksPDF · GitHub
2024-06-27 23:29:31 297
原创 【公开数据集获取】
Open Images Dataset https://www.youtube.com/watch?v=dLSFX6Jq-F0
2024-06-27 23:05:33 189
原创 【图像分类】Yolov8 完整教程 |分类 |计算机视觉
yolo classify train data='绝对路径' model=yolov8n-cls.pt epochs=1 imgsz=64。data="数据集的的绝对路径",这里是放所有图片的那个总文件夹,就是train/val/test上面一级的,然后注意一定是绝对路径。results = model.train(data="数据集的的绝对路径", epochs=1, imgsz=64)数字不好看,我们用每个epoch的loss值画一个图像,可以直观的看。其中我们重点关注,loss和accuracy。
2024-06-27 23:03:13 2729
原创 【报错】记录一次yolov8 cannot import name ‘YOLO‘ from ‘ultralytics‘ (unknown location)报错,搞清楚全局环境和虚拟环境
刚刚在autodl,因为之前在根目录下的yolov8虚拟环境下面是已经安装了ultrlytics包的,所以进入了yolov8虚拟环境,结果出现如下报错:提示,不能从ultralytics包导入这个类。进行了一番尝试,发现问题是:我在全局环境(根目录)下也安装了ultralytics库,我在虚拟环境运行时候就报错了。import systry:进去看看所以,直接退出虚拟环境,在root下运行,运行成功。所以,,最佳方式是先创建一个虚拟环境,然后在该虚拟环境中安装库进行YOLOv8的训练。
2024-06-23 14:28:21 1554
原创 【yolov8语义分割】跑通:下载yolov8+预测图片+预测视频
中间下载torch的时候突然跳出去了,然后重新进入yolov8的虚拟环境,一定注意是root目录下的,也就是说,在哪个目录下创建的虚拟环境,就从哪里进入,可以看到,她是先下载了yolov8n-seg.pt模型,存在根目录下,然后,直接下载网站的图片,对bus这个图进行预测。她还给出了预测的结果,说有4个人一个bus,还有191.2ms的预测时间。模型就不变了,换个图,注意这个目录一定是对应autodl上的目录分布,更新好了,现在也在yolov8虚拟环境下了。如果是在终端打开的,记得,先进入python。
2024-06-22 15:40:54 1219
原创 【语义分割】1-标注数据集-【单张图片】labelme标注json文件转mask
除了自己描,还能用AI辅助标注,但是我打开会闪退,这个问题待解决。另外注意:标注过程中,不要切换目录;要确认,json文件最后,imagePath的图像路径,只能是图像名字本身,不能有其他的路径和符号。
2024-06-21 23:55:20 2161 1
原创 【猫狗分类】Pytorch VGG16 实现猫狗分类3-生成器+数据增强
3. **兼容PyTorch等框架**: 深度学习框架(如PyTorch)的数据加载器(DataLoader)要求数据集类实现`__getitem__`和`__len__`方法,以便能够高效地按批次加载和处理数据。2. **迭代兼容**: 实现了`__getitem__`的数据集类可以被用在for循环中,因为Python的迭代协议会尝试使用`__getitem__`方法来遍历对象。4. **灵活的数据处理**: 在`__getitem__`内部,可以根据索引执行复杂的逻辑来处理和返回特定的样本。
2024-06-16 18:27:47 1301
原创 【猫狗分类】Pytorch VGG16 实现猫狗分类2-模型构建
搭架子,搭建网络架子,就是先把这个VGG16网络,里面的算子层,按照VGG16那个结构,搭建起来,从开始知道,它一共是16层,按照顺序,搭建起来。但是这一块和自己搭建不一样,他不是先一层一层搭建的,它先把分类器给搭建了。把官方源代码复制过来,删除一些不必要的,用删除线表示,新增用斜线表示。这里分为两块,网络搭建+权重初始化先看看网络搭建部分,传特征,建池化层,按照顺序搭建: int: bool-> Noneself.features = features # 传特征self.
2024-06-16 03:02:29 1231
原创 【猫狗分类】Pytorch VGG16 实现猫狗分类1-数据清洗+制作标签文件
sets = ['train'] #这里是表示只有训练集表示当前的这个脚本,是我们用来处理训练集的,模型通过学习训练集中的特征和标签,去构建预测模型;这样的写法,是便于添加的列表形式,如果项目还需要val和test集,那就直接在sets里面添加这些划分,比如:sets = ['train','val','test']遍历类别:对于每个type_name,检查它是否属于classes。
2024-06-15 18:01:57 1357
原创 姿态识别论文复现(一)安装包+下载数据
Lite-HRNet:轻量级高分辨率网络简介:高分辨率网络Lite-HRNet,用于人体姿态估计环境配置:该代码是在 Ubuntu 16.04 上使用 python 3.6 开发的。需要 NVIDIA GPU。使用 8 个 NVIDIA V100 GPU 卡进行开发和测试。其他平台或 GPU 卡尚未经过全面测试。【我用的是autodl云服务器】
2024-06-14 22:09:06 811 2
原创 Github淘金
打比赛:GitHub - lsh1994/tianchiorgame: 天池比赛,kaggle等等(Keras/PyTorch实战)
2024-06-10 23:22:49 220
原创 如何在两个不同的conda环境中实现jupyter notebook共同使用,避免重复下载
其中,yes已经安装了jupyter notebook;py38_pytorch没有jupyter notebook。现在,实现在py38_pytorch用jupyter notebook。前提:有2个conda环境,yes和py38_pytorch。4、激活yes(有jupyter notenook)的环境。5、输入 jupyter notebook,打开。这个包允许环境作为Jupyter的内核使用。3、将环境添加到Jupyter的内核列表。1、激活py38_pytorch。
2024-06-10 22:54:05 290
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人