- 博客(80)
- 收藏
- 关注
原创 Python GUI开发必看:Tkinter Button控件使用详解
为了使一个普通的按钮保持被按下的状态,例如你希望通过某种方式实现一个工具箱(像Photoshop左侧的工具栏按钮,按下时会保持凹下去,说明你正在使用此工具),你可以简单的将relief选项的默认值RAISED改为SUNKEN。如果你没有指定Label的大小,那么Label的尺寸是正好可以容纳其内容,你可以使用padx和pady选项在Button的内容和边框间添加额外的间距。你可能在开发程序的过程中会使用到这样的按钮,在这种情况下,更好的方法是禁用这些按钮,从而避免导致你的测试用户产生疑惑。
2024-08-11 16:41:28 535
原创 Python GUI开发必看:Tkinter Label控件使用详解
Label(标签)组件用于在屏幕上显示文本或图像,Label组件仅能显示单一字体的文本,但文本可以跨越多行。1.如果你显示的是文本,那么这两个选项是以文本单元为单位定义Label的大小;当使用文本换行的时候,你可以使用anchor和justify选项来使得文本呈多种方式显示出来。Label组件用于显示文本和图像,并且使用双缓冲,这样你就可以随时更新内容,无缝衔接,丝滑~当然,Label可以显示变量,当显示变量时,Label中的内容会自动更新。你也可以指定Label中的文本用哪种字体显示。
2024-08-11 16:33:46 661
原创 怀旧必玩!重返童年,扫雷游戏再度登场!
Python提供了一个标准的GUI(图形用户界面)工具包:Tkinter。它可以用来创建各种窗口、按钮、标签、文本框等图形界面组件。而且Tkinter 是 Python 自带的库,无需额外安装。Now,让我们一起来回味一下扫雷小游戏吧。关注公众号+回复【扫雷】
2024-07-27 16:19:58 294
原创 【Python基础022】一文搞明白Python函数
函数的定义使用def关键字,后面跟着函数名和一对圆括号(),括号内可以包含参数列表,然后是冒号:,最后是一个代码块(即缩进的代码部分)。基本语法如下:def 函数名([参数1, 参数2, ...]):代码[return 表达式]其中函数名可以是字母数字或下划线组成的字符串,但是不能以数字开头。函数的参数放在一对圆括号中,参数的个数可以有零个、一个或多个,参数之间用逗号隔开,这种参数称为形式参数。括号后面以冒号结束,冒号下面就是函数的主体。
2024-03-28 17:17:34 1006 1
原创 【YOLO系列】YOLO V5模型详解
YOLOv5根据参数量分为了YOLOv5n(Nano)、YOLOv5s(Small)、YOLOv5m(Medium)、YOLOv5l(Large)和 YOLOv5x(Extra Large)五种类型,其参数量依次上升,当然了其效果也是越来越好。从2020年6月发布至2022年11月已经更新了7个大版本,在v7版本中还添加了语义分割的功能。
2024-03-01 17:21:40 2575
原创 【ERROR不再见系列007】解决了Matplotlib中文乱码问题,负号又不见了?
用matplotlib进行绘制数据图,常常需要设置中文的标签、图例,但是matplotlib对中文不是特别友好,如果你直接在标签中输入中文,那么绘制出来的数据图上的中文部分就是乱码。但是,中文乱码问题解决了,好像又出现新的问题了。我们发现上图x轴的负号又乱码了,那怎么搞呢?看这里,只需一行代码解决中文乱码问题。有些字体matplotlib没有自带,需要自己去下载。同样,只需一行代码解决负号乱码问题。最后附一个不同字体对应的编码。
2024-02-28 10:02:01 345
原创 【数据分析之Matplotlib基础001】Matplotlib安装与如何绘出你的第一条线
为了将数据变成大家喜欢的图形数据,Python提供了matplotlib数据可视化库来绘制各种数据图。Matplotlib是Python的一个2D绘图库,可以绘制直方图、功率谱、条形图、错误图、散点图等。
2024-02-28 09:56:29 914
原创 【数据分析之Numpy基础004】数学运算大揭秘:轻松玩转ndarray的强大实力
ndarray的数学运算是一项非常重要的操作,包括不同对象之间的四则运算,三角函数变换、求和、求平均等操作。
2024-02-25 12:56:57 488
原创 【数据分析之Numpy基础003】数组形状大变身!轻松掌握改变数组形状的技巧
处理数组的一项重要工作就是改变数组的维度,包括提高数组的维度和降低数组的维度,还包括数组的转置、拼接、分隔等。Numpy为大家提供了大量的API可以很轻松的完成这些数组的操作。
2024-02-25 12:40:26 794
原创 【数据分析之Numpy基础002】掌握ndarray对象:访问与修改技巧大揭秘
ndarray数组的下标也是从0开始,因此可以设置start,stop以及step参数即可从原数组中切割出一个新的数组。ndarray对象的访问与修改十分容易,跟list对象的操作一样,直接通过索引或切片操作就可以实现。一维数组的切片与索引。
2024-02-22 15:03:10 290
原创 【数据分析之Numpy基础001】数组创造者秘籍:轻松掌握创建Array,编程新手变高手
numpy模块的array函数可以生成多维数组。例如,如果要生成一个二维数组,需要向array函数传递一个列表类型的参数。每个列表元素是一维的ndarray类型数组,作为二维数组的行。另外,通过ndarray类的shape属性可以获得数组每一维的元素个数(元组形式),也可以通过shape[n]形式获得每一维的元素个数,其中n是维度,从0开始。其中::数组或嵌套的数列:数组元素的数据类型,可选:对象是否需要复制,可选:创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
2024-02-22 14:40:26 886
原创 【Python基础021】Python中的何如实现文件的读写
Python中文件的读写在程序运行过程中是一个非常重要的操作,我们通常会将一些大量的临时数据暂时存放到一个临时文件,这就需要用到文件的读取与写入功能。
2024-02-04 16:35:52 973
原创 【Python之Git使用教程001】Git简介与安装
Git其实就是一个分布式版本的控制系统,在分布式版本的控制系统,大家都拥有一个完整的版本库,不需要联网也可以提交修改,所以中心服务器就显得不那么重要。由于大家都拥有一个完整的版本库,所有只需要把各自的修改推送给对方,就可以互相看到对方的修改了。以前有很多公司都是用SVN进行版本控制管理,但是后面使用SVN做版本控制的Google Code因为干不过Github,关门大吉了,所有很多公司逐渐将代码迁移至Git。那么,Git与SVN的区别是什么呢?
2024-02-04 16:22:26 2263
原创 【Python基础020】Python中三大常用函数(map、filter、reduce)
map、filter和reduce函数都是Python中的内置函数,但是reduce函数从Python3开始移到了functools模块中,使用时需要从functools模块导入。
2024-01-31 14:28:29 383
原创 【YOLO系列】 YOLOv4之BN、CBN、CmBN(附代码)
在文中,作者针对BN在小批量的问题,利用多个最近迭代的样本的来提高数据估计的质量,但是由于在迭代过程中网络权重不断变化,来自不同迭代的网络激活不能相互比较,因此作者提出一种基于泰勒多项式的技术来补偿迭代之间网络权值变化,从而有效利用之前迭代的样本来改进批量归一化,这种方法就是交叉迭代的批量归一化(CBN)。说简单点,CBN就是一种通过补偿迭代之间网络权值的变化而有效的利用之前的迭代样本来改进批量归一化的方法。
2024-01-31 14:25:28 1708
原创 【Python基础019】匿名函数lambda与关键字yield
lambda函数被称为匿名函数,主要是指在程序中只调用一次或几次后就不需要再使用的函数,属于“一次性”函数,并且不需要def关键字来定义函数。其语法格式如下:其中,arguments是函数参数,expression是函数体中的表达式。Lambda函数可以有任意数量的参数,但只能有一个表达式。例如,求两数之和求两数的平方和。
2024-01-30 16:49:12 351
原创 【Python基础018】在程序中怎么实现自定义抛出异常
在 Python 中,可以通过继承 Exception 类来创建自己的异常称为自定义异常。异常类和其他的类并没有区别。最简单的自定义异常类就是一个空的 Exception 类的子类。语法格式如下:pass下面通过继承 Exception 类来生成一个 SexException 类。如果给 Student 类的属性 sex赋值时候,如果不是“男”或者“女”就抛出自定义的 SexException。
2024-01-30 16:45:11 1854
原创 【Python基础017】Python异常大揭秘:轻松驾驭错误,从此告别Bug!(try...except...的使用)
在python程序在运行的过程中可能会出现很多错误,比如语法、未定义变量、分母为0等错误;而我们通常使用try...except...语句来处理程序在运行中出现的这些异常,并显示出现错误的原因。此外,我们还可以用try...finally...来监控错误的环节,并继续执行finally后的语句,但是这种判断结构无法显示出现的错误原因。因此,在实践中通常将这两种结构组合起来使用。同时,还可以使用try...except...else...finally的形式来实现更好的稳定性和灵活性设计。
2024-01-28 22:56:49 878
原创 【Python基础016】循环黄金法则:瞬间掌握break与continue,编程效率翻倍!
与 break 语句对应的还有另一个 continue 语句,与 break语句不同的是,continue 用于结束本次循环,继续下一次。而 break 语句用来彻底退出循环。可以看到,continue是跳过当前循环,继续下一个循环,直到完成for循环,而break则是直接退出for循环。可以看到,当a=5时,break会退出for循环,则不会继续将for循环执行完,同时也不会退出while循环。print("被5除净,循环结束,退出")print("循环结束,退出")print("循环结束,退出")
2024-01-28 19:56:56 383
原创 【Python基础015】集合的用法
集合是无序可变,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典中的 “ 键对象”,因此是不能重复的且唯一的。
2024-01-26 22:19:39 162
原创 【Python基础014】字典的用法
Python中的字典(dict)与列表、元组都不同,它不是序列,而是一种映射(mapping)。映射是一个其他对象的集合,但是它们是使用键-值(key-value)来存储对象,具有极快的查找速度。字典是另一种可变容器模型,且可存储任意类型对象,同列表一样,可以就地改变并随着需求增大或减小。字典的每个键值对(key=>value)用冒号(:)分割,每对之间用逗号(,)分割,整个字典包括在花括号({})中 。
2024-01-26 22:16:30 663
原创 【YOLO系列】 YOLOv4之SAT自对抗训练
自对抗训练(Self-Adversarial Training,简称SAT)是一种新型的数据增强技术,旨在通过神经网络自身进行的对抗式攻击来提高模型的鲁棒性和泛化能力。其主要分为两个阶段:第一阶段神经网络会对其原始图像进行修改,制造出图像上没有目标的假象。这种修改是通过一种对抗的方式进行的,即神经网络改变原始图像而不是网络权值。具体来说,神经网络在训练过程中会生成一种对抗性的攻击,这种攻击可以改变原始图像,使其看起来像没有目标物体一样。第二阶段训练神经网络对修改后的图像进行正常的目标检测。
2024-01-22 15:49:10 1147
原创 【Python基础013】元组的用法
元组是不可变的有序集合,一旦创建就无法对其进行修改。因此,元组没有列表的append()、insert()方法来向元组中添加元素,但是方法总比问题多,我们仍然可以通过其他方法来向元组添加元素。
2024-01-22 14:16:54 1155
原创 【Python基础012】列表的用法
列 表 用 于 存 储 任 意 数目、任意类型的数据集合。在 Python 中,用方括号([])来表示列表,并用逗号来分隔其中的元素。
2024-01-18 23:59:08 1285
原创 【YOLO系列】 YOLOv4之(Hard)NMS、Soft NMS、DIOU NMS(附代码)
NMS (Non-Maximum Suppression,非极大值抑制),是一种在计算机视觉领域常用的技术,。在目标检测任务中,算法通常会生成多个候选框来表示可能包含目标的区域。由于图像中的目标可能以不同的尺度和位置出现,这些候选框往往会有一定的重叠。在经典的NMS中,得分最高的检测框和其它检测框逐一计算出一个对应的IoU值,并将该值超过NMS threshold的框全部过滤掉。可以看出,在经典NMS算法中,IoU是唯一考量的因素。
2024-01-18 15:11:34 1647
原创 【YOLO系列】 YOLOv4之Focal Loss损失函数
Focal Loss损失函数何凯明大神在RetinaNet网络中提出来的,主要是为了解决one-stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的比重,也可以理解为一种困难样本的挖掘。它通过调整标准的交叉熵损失函数,使得模型在训练过程中更加关注难以分类的样本。作者认为one-stage和two-stage的表现差异主要原因是大量前景背景类别不平衡导致。作者设计了一个简单密集型网络RetinaNet来训练,在保证速度的同时达到了精度最优。
2024-01-15 16:23:25 1192
原创 【YOLO系列】 YOLOv4之Mosaic数据增强(附代码)
Mosaic数据增强是一种在目标检测任务中常用的技术,特别是在使用YOLO系列算法时。这种数据增强方法通过将四张图片随机组合成一张新的图片,从而增加数据集的多样性,提高模型的泛化能力。将这样一张新的图片传入到神经网络当中去学习,相当于一下子传入四张图片进行学习了。这极大丰富了检测物体的背景,且在标准化BN计算的时候一下子会计算四张图片的数据。
2024-01-15 16:13:40 3210
原创 【YOLO系列】 Smooth L1 Loss、IOU、GIOU、DIOU、CIOU(附代码实现)
Smooth L1 Loss、IOU、GIOU、DIOU和CIOU都是用于评估模型预测准确性的指标,但它们在计算方式和应用场景上有所不同。
2024-01-11 14:03:17 1528
原创 【YOLO系列】 YOLO V4之正则化DropBlock
DropBlock是一种正则化技术,用于防止深度神经网络的过拟合。它通过在训练过程中随机丢弃网络中的一部分特征图,来增加模型的泛化能力。文章中分析了传统的dropout在conv上效果不好的原因conv具有空间相关性,所以即使对一些单元随机进行dropout,仍然可以有信息流向后面的网络,导致dropout不彻底。针对这个问题,作者提出了DropBolck这一方法,思想很简单:从名字就可以看出来,既然随机丢弃独立的单元可能导致丢弃不彻底,那不如一次丢弃一个block。
2024-01-11 11:31:42 1029
原创 【YOLO系列】 YOLOv4思想详解
以下内容仅为个人在学习人工智能中所记录的笔记,先将目标识别算法yolo系列的整理出来分享给大家,供大家学习参考。本文未对论文逐句逐段翻译,而是阅读全文后,总结出的YOLO V4论文的思路与实现路径。若文中内容有误,希望大家批评指正。资料下载回顾:大家可以发现YOLO V4论文的作者变成Alexey Bochkovskiy了,YOLO V1-3的作者都是Joseph Redmon, Ali Farhadi,不过不影响,YOLO V4作者提出了一大堆措施来提高YOLO的性能,我们这就来看看。
2024-01-09 17:09:50 1205
原创 【YOLO系列】 YOLOv4之Mish函数
1、公式其他的激活函数,ReLU 是 x = max(0,x),Swish = x * sigmoid(x)。2、 代码实现要使用这个Mish模块,可以将其添加到神经网络模型中,并在训练和推理过程中使用它作为激活函数。return xReLU有一些已知的弱点,但是通常执行起来很轻,并且在计算上很轻。Mish具有较强的理论渊源,在测试中,就训练稳定性和准确性而言,Mish的平均性能优于ReLU。
2024-01-09 17:06:33 535
原创 【Python基础010】Python中的字符串操作
找到子字符串sub,使字符串分成一个3元组(pre_sub,sub,fol_sub),如果字符串中不包含sub则返回(‘原字符串’,‘,’)不带参数默认是以空格为分隔符切片字符串,如果maxsplit参数有设置,则仅分隔maxsplit个字符串,返回切片后的子字符串拼接。检查字符串是否以sub子字符结束,如果是返回True,否则返回False,start和end表示范围。检索sub是否包含在字符串中,如果有则返回索引值,否则返回-1,start和end参数表示范围,可选。如果为True,则保留换行符。
2023-12-26 20:21:51 80
原创 【Python基础009】位置参数和关键字参数及*arg,**kwargs的用法
在Python中,函数定义时可以指定参数的位置和关键字。位置参数和关键字参数是两种不同类型的参数,它们在定义和使用时有所不同。
2023-12-26 10:22:53 651
原创 【Python基础008】python中省略号(...)的用法
在Python中,省略号(...)也被称为Ellipsis,它是一个特殊的对象,常见用于多维数组的切片操作。
2023-12-25 14:52:45 1358
原创 【Python基础007】os与so.path关于文件的常用函数
函数功能返回当前工作目录改变工作目录列举制定目录中的文件名('.’表示当前目录,‘..’表示上一级目录)创建单层目录,如该目录存在则抛出异常递归创建多层目录,如该目录存在抛出异常删除文件删除单层目录,如该目录非空则抛出异常递归删除目录,从子目录度到父目录逐层尝试删除,遇到目录非空则抛出异常将文件名old改为new运行系统的shell命令遍历top路径以下所有的子目录,返回一个三元组:(路径,[包含目录],[包含文件])os.curdir指代当前目录(‘.’)os.pardir。
2023-12-25 14:50:26 141
原创 【MySQL学习笔记009】事务
事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。
2023-12-24 22:32:53 132
原创 【MySQL学习笔记008】多表查询及案例实战
概述:从多张表中查询数据笛卡尔积:笛卡尔乘积是指在数学中,两个集合A集合和B集合的所有组合情况(在多表查询时,需要消除无效的笛卡尔积)
2023-12-24 22:29:17 198
原创 【MySQL学习笔记007】约束
约束是作用于表中字段上的规则,用于限制存储在表中的数据。:保证数据库中数据的正确、有效性和完整性。:约束是作用于表中字段上的,可以在创建表/修改表的时候添加约束。
2023-12-24 22:24:40 157
yolov3中kmeans算法生成Anchor Box脚本
2023-12-15
yolo目标检测标签文件txt与xml文件相互转化脚本
2023-12-13
【Python基础】用Pyinstaller打包程序,轻松搞定程序内有图片导致exe无法运行问题
2023-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人