- 博客(43)
- 收藏
- 关注
原创 SVM支持向量机python实现
**形式**:\( K(x, y) = \sum_{i=1}^d \exp(-\sigma (x_i - y_i)^2) + \kappa \sum_{i < j} \exp(-\sigma (x_i - y_i)^2 - \sigma (x_j - y_j)^2) \),其中 \(\sigma\) 和 \(\kappa\) 是参数。- **形式**:\( K(x, y) = \tanh(\alpha x^T y + c) \),其中 \(\alpha\) 和 \(c\) 是参数。
2024-10-19 21:09:10
1196
原创 子集 宏观+微观 python 思路
现在写微观,微观就是,写递归函数,自从nums原始数组开始传递的时候,这个传递的逻辑是什么?怎怎么递,什么时候归(回溯)如果不对当前的路径进行保存,那么在回溯(即撤销选择)之后,当前路径的信息就会丢失,因为它会被新的选择覆盖。self.backtracking() #不知道回溯的传参是啥,先空着,,等下面回溯函数写好了再回头写。self.backtracking() #不知道回溯的传参是啥,先空着,,等下面回溯函数写好了再回头写。这样写不对,要传具体的参数就一起传递,保持一致,不然报错!
2024-09-08 19:16:41
392
3
原创 全排列 python 宏观+微观 思路
传参:首先传self,因为是class solution下的,还有nums原始的数字是什么,是否已经使用used,收集单个结果的path(想象一下,每条树的路径就是一个子集结果),还有最后的大的结果result。现在,我们把最原始的nums已经拆成3个了,并且加入了子集path,并且通过used标记了这个数字我们有没有遍历到,这时候,可以开始下一层的遍历逻辑了。到这里就结束了,这两个操作共同保证了算法能够正确地回溯到之前的状态,并尝试不同的元素组合,直到找到所有可能的排列。注意,这里开始有趣了。
2024-09-07 20:28:39
845
原创 从二叉树看类,对象和面向对象编程
实际上,递归函数里面的root就是类的活体,本来这个类就是一个节点的类里面有三个属性,root就是类的活体,是root赋予类生命,让root能在递归函数里面成为能够动态执行函数的节点,如果没有root,类就是死的,只是一个设计图,所以可以任意调用类里面的属性。之所以叫做,面向对象编程,是因为对象是用在函数里面用来执行任务的,但是这个对象需要有一些属性或者本身就应该有的行为,所以需要提前在类里面定义这个对象的属性或者行为。类型的对象,这个对象可以是树中的任何一个节点,而不仅仅是根节点。当你在递归函数内部写。
2024-09-06 13:46:00
450
原创 递归递归先递后归二叉树与递归(回溯)
浅谈个人对二叉树递归理解三句话总结分而治之先递后归归即是回溯二叉树是一个大的树有左子树和右子树,我要对整个二叉树做后序遍历,宏观上看,就是把整个二叉树按照左右根的顺序遍历一遍,放进一个列表。但是二叉树有左有右,每个二叉树又看成是分裂成很多很多个小的二叉树,刚刚说了,宏观上,我是左右根的顺序遍历。好,现在来到左边,左边也是一个独立的二叉树,也是要左右根的顺序遍历的,好,那就从头到尾,尾巴就是叶子结点,终止条件就是root当前节点是空的说明没了就停了。
2024-09-06 13:14:51
444
原创 【Opencv】模糊
img_blur = cv2.blur(img,(k_size,k_size)) #窗口是正方形,也可以是不同的值,就是选择窗口大小。k_size = 7 #窗口大小,数字越大,模糊越强。
2024-07-29 23:54:12
422
原创 【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
445
原创 【OpenCv】裁剪
cropped_img = img[320:640, 420:840] #指定裁剪的高,和宽。# 320:640是指定高。# 420:840是指定宽。
2024-07-29 22:29:53
308
原创 【算法刷题】【力扣】| 最长回文子串|
这段代码利用了中心扩展的方法,通过遍历字符串和从每个可能的中心向两边扩展来找到最长的回文子串。这一行代码是在检查当前找到的回文子串的长度是否大于之前记录的最长回文子串长度。在这个过程中,程序会不断地向两边扩展,直到不能形成回文串为止(即。表示当前扩展出来的回文子串的长度。,就说明找到了一个更长的回文子串,因此需要更新。"aba" 同样是符合题意的答案。
2024-07-23 23:10:18
466
原创 将半自动化标签绘制在原图上
用yolov8的推理,做了半自动化标签处理。yolo的标签格式是:标签 + 每个顶点的坐标比如:第一个数字0是类别,后面是每个顶点的坐标,(x,y)这样的。而且可能是多行的所以,要把标签画在原图上,看看打的对不对。画标签到原图上.py。
2024-07-22 23:02:01
673
原创 YOLOV8-【Autodl | 命令行方式】跑语义分割训练自己数据集
如果在云服务器跑yolov8,总结起来就是:1、首先,要在本地准备好格式化的数据集,data,到时候用xftp7直接传到云服务器2、在云服务器,要新建两个东西;第一个是,下载ultrlytics包的虚拟环境第二个是,存放实例化数据的文件夹,放data和配置文件3、进入云服务器,的虚拟环境,下载ultrlytics包进入新建的文件夹,传输data和mydata.yaml4、在正确的虚拟环境,及正确的文件夹下(缺一不可),开始跑训练~/ptyolov8以上两个的区别是,第一个是直接把。
2024-07-13 00:54:31
1436
原创 【数据集划分——针对于原先图片已经整理好类别】训练集|验证集|测试集
【代码】【数据集划分——针对于原先图片已经整理好类别】训练集|验证集|测试集。
2024-06-28 00:09:42
365
原创 【数据科学】学习资源汇总(不定时更新)
好书推荐:BooksPDF/数据科学/Python数据科学手册.pdf at master · zhixingchou/BooksPDF · GitHub
2024-06-27 23:29:31
337
原创 【公开数据集获取】
Open Images Dataset https://www.youtube.com/watch?v=dLSFX6Jq-F0
2024-06-27 23:05:33
302
原创 【图像分类】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
4930
原创 【报错】记录一次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
7287
原创 【yolov8语义分割】跑通:下载yolov8+预测图片+预测视频
中间下载torch的时候突然跳出去了,然后重新进入yolov8的虚拟环境,一定注意是root目录下的,也就是说,在哪个目录下创建的虚拟环境,就从哪里进入,可以看到,她是先下载了yolov8n-seg.pt模型,存在根目录下,然后,直接下载网站的图片,对bus这个图进行预测。她还给出了预测的结果,说有4个人一个bus,还有191.2ms的预测时间。模型就不变了,换个图,注意这个目录一定是对应autodl上的目录分布,更新好了,现在也在yolov8虚拟环境下了。如果是在终端打开的,记得,先进入python。
2024-06-22 15:40:54
1681
1
原创 【语义分割】1-标注数据集-【单张图片】labelme标注json文件转mask
除了自己描,还能用AI辅助标注,但是我打开会闪退,这个问题待解决。另外注意:标注过程中,不要切换目录;要确认,json文件最后,imagePath的图像路径,只能是图像名字本身,不能有其他的路径和符号。
2024-06-21 23:55:20
5880
2
原创 【猫狗分类】Pytorch VGG16 实现猫狗分类3-生成器+数据增强
3. **兼容PyTorch等框架**: 深度学习框架(如PyTorch)的数据加载器(DataLoader)要求数据集类实现`__getitem__`和`__len__`方法,以便能够高效地按批次加载和处理数据。2. **迭代兼容**: 实现了`__getitem__`的数据集类可以被用在for循环中,因为Python的迭代协议会尝试使用`__getitem__`方法来遍历对象。4. **灵活的数据处理**: 在`__getitem__`内部,可以根据索引执行复杂的逻辑来处理和返回特定的样本。
2024-06-16 18:27:47
1393
原创 【猫狗分类】Pytorch VGG16 实现猫狗分类1-数据清洗+制作标签文件
sets = ['train'] #这里是表示只有训练集表示当前的这个脚本,是我们用来处理训练集的,模型通过学习训练集中的特征和标签,去构建预测模型;这样的写法,是便于添加的列表形式,如果项目还需要val和test集,那就直接在sets里面添加这些划分,比如:sets = ['train','val','test']遍历类别:对于每个type_name,检查它是否属于classes。
2024-06-15 18:01:57
1545
原创 姿态识别论文复现(一)安装包+下载数据
Lite-HRNet:轻量级高分辨率网络简介:高分辨率网络Lite-HRNet,用于人体姿态估计环境配置:该代码是在 Ubuntu 16.04 上使用 python 3.6 开发的。需要 NVIDIA GPU。使用 8 个 NVIDIA V100 GPU 卡进行开发和测试。其他平台或 GPU 卡尚未经过全面测试。【我用的是autodl云服务器】
2024-06-14 22:09:06
997
3
原创 Github淘金
打比赛:GitHub - lsh1994/tianchiorgame: 天池比赛,kaggle等等(Keras/PyTorch实战)
2024-06-10 23:22:49
288
原创 如何在两个不同的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
373
原创 牛客刷题【列表】
这样修改后,当你输入多个以空格分隔的名字,程序会正确地在这些名字后面添加 "Allen" 并输出完整的列表。放入一个新列表中,这个过程实际上没有改变任何数据结构或元素内容,只是徒增了计算量,因此是不必要的。得到的列表,并对其进行后续操作,既简化了代码,又提高了效率。修正后的代码直接进行。方法会直接修改列表并删除指定的元素,但该方法不返回任何值,因此将其打印出来会得到。问题:修正后的代码应该是去掉不必要的列表推导式 ,为什么加了这一步就不行了?2、使用split()函数,将字符串按照特定的字符拆分成列表。
2024-06-10 20:13:52
733
原创 解决JupyteNotebook打不开问题
7、修改:# c.ServerApp.browser = 'C:\Program Files\Google\Chrome\Application\chrome.exe'1、win+r,cmd进入,conda activate yes 进入yes环境(后面是要下载新的jupyter notebook),我这里下载到了yes环境下。2、下载jupyter Notebook 一开始用清华源下载不了,后面改阿里源成功下载。3、下载后,进入yes环境,写jupyter notebook显示找不到浏览器。
2024-06-10 16:27:24
1415
原创 从softmax分类问题看神经网络的核心
`.reshape((-1, W.shape[0]))` 这个操作将`X`调整形状,使得它能与权重矩阵`W`进行矩阵乘法。如果重塑后的`X`形状为`(batch_size * height * width, in_features)`,而`W`的形状为`(in_features, out_features)`,那么结果将会是一个形状为`(batch_size * height * width, out_features)`的张量,表示每个输入样本通过线性变换后得到的输出特征向量。
2024-06-09 11:44:06
766
2
原创 交叉熵损失
其中,yiy_iyi 是真实标签的第 i 个类别的概率,y^i\hat{y}_iy^i 是模型预测的第 i 个类别的概率,log\loglog 是自然对数。交叉熵越小,表示模型的预测结果与真实标签之间的差异性越小,模型的性能越好。其中,yyy 是真实的二分类标签(0或1),y^\hat{y}y^ 是模型预测的概率值。y_hat = torch.tensor([[0.2, 0.8], [0.6, 0.4], [0.4, 0.6]]) # 模型预测的概率分布,每个样本有两个类别的概率值。
2024-06-08 15:57:40
372
原创 Softmax函数
其中,eee 是自然对数的底数,ziz_izi 是向量 zzz 的第 iii 个元素,kkk 是向量 zzz 的长度。Softmax函数将向量 zzz 中的每个元素转换为一个概率值,使得所有概率值的和为1,可以用来表示多个类别的概率分布,常用于神经网络的输出层进行多类别分类。Softmax函数是一个常用的激活函数,通常用于多类别分类问题中的输出层。它将输入的实数向量转换为概率分布向量,使得每个元素都在0到1之间,并且所有元素的和为1。
2024-06-08 15:54:26
216
原创 线性代数。
在你提到的情况下,矩阵 A 是 3×4 的矩阵,矩阵 B 是 4×5 的矩阵,它们满足了列数等于行数的规则。具体来说,矩阵 A 有 3 行 4 列,矩阵 B 有 4 行 5 列,因此它们可以相乘得到一个 3 行 5 列的结果矩阵。矩阵乘法的规则是要求第一个矩阵的列数(Columns)必须等于第二个矩阵的行数(Rows)。这个规则是矩阵乘法定义的基础,它保证了矩阵乘法的可行性和结果的正确性。向量的长度是向量里面每个元素,屏平方求和,开根号、相同的那个,在计算时候,内部消解了。向量:一行(列)值;
2024-06-08 15:50:26
135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人