20243305 2024-2025-2《Python公选课》实验四报告
20243305 2024-2025-2 《Python程序设计》实验四报告
课程:《Python程序设计》
班级: 2433
姓名: 曹鹤平
学号:20243305
实验教师:王志强
实验日期:2025年5月14日
必修/选修: 公选课
实验成果视频:https://www.bilibili.com/video/BV1D27gzkErJ/?vd_source=cee05ed1a4e82f42b574dd34ed1c1fea
一、实验目的
前不久的印巴空战可谓是轰轰烈烈,吸引了全世界人的眼球。歼十c的亮眼表现也让国人感到自豪。但是我发现,大家似乎对我国的战机型号分的不是那么清楚,对此,我打算借此实验之际,开发一款能够识别我国空军的主力机型的软件,通过图片便可显示战机名称。但是这个项目涉及深度学习,我自己大抵是设计不出来的,于是我学习b站up主 肆十二- 的图像识别教程进行开发
二、实验流程
1.环境设置 比较可以,那么先安装显卡驱动(我提前安好了,所以我在实验中并无此步骤)

如图,在英伟达驱动网站搜索对应的显卡型号和系统
(2)下载anaconda
因为我们是北京电子科技学院的学子,是不可以干kexue上网这种违法的事情,所以这里用清华大学的镜像网站,选57.7mb这个

那么我们下载完毕后,在cmd中输入conda

可以看到conda已经注册进系统环境变量了
但是还是因为不能违法,得将conda切换到国内的源,要不然会特慢
输入中科大的这个加速指令
conda config --remove-key channels
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/
conda config --set show_channel_urls yes
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
(3)创建虚拟环境

创建后还要激活,输入conda activate cls-42
(4)安装pytorch
因为最新版本存在很多不确定性,所以我们下载1.10版本
先进入pytorch官网

之后找到1.10版本
因为我是3070也就是30系的显卡,所以我们用cuda11.3版本
复制这段代码

之后再虚拟环境中粘贴,即可开始下载

(5)配置pycharm
在右下角,选择conda

然后找到自己的虚拟环境也就是我刚才设置的cls-42
至此,环境配置已经完成了
2.制作数据集
因为这里涉及数据的训练,所以我们需要找到我国各种战机的图片进行训练
这里我用爬虫

运行后,我再这里输入我想找的图片,也就是各种机型的图片

这里是歼十战斗机
爬完后就会看到文件夹中的照片

发现有很多图加载不出来,有很多是烂图、
这时候用清除程序

这里需要输入爬出的照片的根目录,输出需要改成英文名要不然会报错
这里以我的歼十六为例


这样就将坏图删掉了

按照这个流程,我分别做了歼十,歼十六,歼二十
3.制作训练集
将三个数据集放到一个文件夹

这里用6 2 2 的比例制作数据集,训练集和验证集
4.训练



将自己制作的训练集地址输入正确
选择模型

用哪个模型就将哪个模型解注
我这里用的是第二个

这样就训练成功了
成功后需进行测试会生成这样的热力图(因为我不小心把歼十六和歼二十搞反了,所以这里概率看起来有点低,后面我把他们改好了)

5.设计ui

这里就不详细解释了,最终成果如图


三、实验中遇到的问题
问题1:有好多国内用不了下载不下来的网站和模型
解决:寻找镜像网站,实在不行的用流量那个了一下()
问题2:训练时总是报错
解决:换了多个模型进行训练
问题3:训练结果匹配度太低
解决:发现两个机型文件名称搞混了
四:本实验感想
本实验的难度确实很大,包括环境的配置,模型的训练。其中我确实没有能力去编写这种代码,所以我用了up主的大段代码,但是因为这是2022年的教程,有一些不符合时效性,我自己在其中修改了许多,比如就是选择模型的时候会报错,因为无法从国外的网站上检索下载,我将模型的读取改为从本地读取。以及在ui界面的修改和美化上。本实验也是我第一次接触到深度学习这一概念,从刚开始的跟着up照葫芦画瓢到自己去制作训练集来识别自己喜欢的东西,成就感很大。本实验中因为版本的不同,外网的无法访问性,等各种原因,我的代码一次次地报错,这导致有好几次我都不想再搞这个深度学习了,随便搞一个简单的游戏得了。但是想着都干到这一步了,也要给一学期的python课一个交代是不是,咬咬牙又坚持下来了。有些时候一个问题要打开好几个网页,看好几个视频才能搞出来,现在想想是真不容易。之后我要继续完善这个程序,从三个机型到全中国空军的机型,全世界空军的机型。
五:本学期python课感想
王老师是好老师,我不是个好学生,老师有时候苦口婆心在上面讲,我在底下可能时不时的溜号,有些没听到的知识点还得下课了再问同学才能得以解决,这里我得跟老师道歉。怎么说呢,我学过c语言了,现在也是学了python了,我觉得二者有着天壤之别,c语言冷冰冰,感觉就是个框搁哪摆着让我往里面输入代码,得到的结果也就是那几个小字,python不一样。它能让我与别人的电脑联网沟通,能让我制作小游戏,能让我用ai深度学习,这让我真的深深地喜欢上python,以后我会继续学习python,用它做更有意义的事情
浙公网安备 33010602011771号