自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 测试集数据语义特征t_SNE降维可视化

载入训练好的模型,对测试集图像进行分类在图像分类通用步骤中,第一步是训练数据集,第二步是测试数据集,而无论是训练还是测试,对我们而言都是黑盒子。我们只知道模型从训练数据中学习到了特征,然后应用到测试集数据集中,最终得出测试集数据的分类结果。对于其中的细节,我们就不得而知了。因此本文将在训练好模型的基础上,在测试集进行数据降维可视化,观察模型将不同数据划分到什么位置,有助于我们理解模型在面对图像是进行了怎样的判断。载入训练好的模型,对测试集图像进行分类数据预处理,采用ImageNet的预处理方式载入数据。

2022-10-24 16:08:09 4289 2

原创 2022华为杯C题汽车制造涂装-总装缓存调序区调度优化问题建模解决

如果去除PBS约束说明中第6、7两条约束,其余约束不变,根据涂装出车序列,考虑PBS区域调度能力及限制,建立PBS优化调度模型,使得总装进车序列尽可能满足总装生产需求。由于各车间的约束不同导致生产调度无法按照同一序列连续生产,特别是涂装车间与总装车间序列差异较大,这就需要在两个车间之间建立一个具有调序功能的缓存区,即PBS(Painted Body Store,汽车制造涂装-总装缓存调序区),用来将涂装车间的出车序列调整到满足总装车间约束的进车序列。各车道距离等分,每车道宽度2米,两相邻车道间间隔1米。

2022-10-11 14:35:43 1389 1

原创 深度学习过程中测试准确率先上升后下降是为什么?

在初始训练阶段,模型逐渐开始学习到一些信息,因而在验证集上的表现是提升的,在到达某一点后,模型接着训练则会更加的去关注一些细枝末节的东西,即模型表达更加多。1.早停,既然模型在某一点时达到最优,那么就设置模型在最优点附近停止训练。在整个训练过程中,虽然说模型出现了过拟合,但是其在训练集上的损失还是趋于平稳的,并不会说因为过拟合而导致损失波动。在训练过程中的验证准确率前上升,后下降,即在验证集上的表现先好后差。3.改变数据,使数据更加复杂,多变,适应模型,也能取得不错的效果。2.为模型增加惩罚项,即正则化。

2022-09-11 10:26:17 8769 1

原创 pytorch迁移学习载入部分权重

使用官方预训练权重,这样的权重包含的信息量大且全面,可以适配一些小数据的任务,即小数据在使用迁移学习后仍然能够保持良好的性能,避免的小数据带来的数据不足,模型训练不充分的问题。载入自己的训练的权重在模型测试和继续训练时使用较多,模型测试载入权重就不说了,继续训练是指假设设置epoch为500,训练接受后,发现模型仍然没有收敛,那么你就可以载入epoch为500时的训练权重,再训练500的epoch,这样你对模型就总共训练了1000个epoch,而不需要在发现模型未收敛时,又重头去训练1000个epoch。

2022-09-05 16:54:51 2608 1

原创 python查看网络的特征图,并计算特征图的直方图,并计算香农熵。

查看特征图的原理在网络的每一层输出中,都会输出一个[b,c,h,w]维度的数据,b是batch的大小,c是通道数,h,w是高和宽。比如某一层的特征图是32x64x112x122,即batch大小为32,通道数为64,大小为112x112的图像。我们读取到这个数据32x64x112x122之后,将其batch维度压缩掉,然后在转换成为图像的PIL格式,即112x112x64.这也就意味着我们有64个112x112大小的图像,我们只需要读取每个通道的图像就可以看到特征图。1.获取输出在p

2022-05-25 19:43:54 2255 6

原创 孪生网络pytoch实现,以resnet为特征提取网络

我的孪生网络代码来源于孪生网络博主,这里的源代码使用的vgg16作为特征提取网络,我的主要工作是将vgg16替换为resnet网络。1.建立resnet网络import torch.nn as nnimport torch# from torchvision.models.utils import load_state_dict_from_urlfrom torchsummary import summaryfrom torch.hub import load_state_dict_fro

2022-05-07 16:39:10 4077 15

原创 OSError: [Errno 28] No space left on device以及查看系统分区情况

在Linux服务器运行程序的时候,运行完一个epoch后就会出现这个报错OSError: [Errno 28] No space left on device。大致意思就是说系统的空间不足。查看系统空间的使用情况:df -h可以看到其中有一个文件夹已经占用100%了,所以提示空间不足。解决办法就是删除掉文件夹内的一些东西即可。查看空间的占用:du -sh /home/* |grep G...

2022-05-05 10:02:39 39895 1

原创 2022年第十四届华中杯数学建模A题解题思路附代码

A 题 分拣系统优化问题 某电商公司配送中心的工作流程分为统计汇总、转运上架、按订单分拣、核对打包等 步骤。其中,分拣环节操作复杂,耗时较长,其效率是影响配送中心整体性能的关键因素。 首先,系统统计汇总出当天全部待配送订单所包含的所有货品及相应数量。然后,转运工 将这些货品由仓库转运至分拣处,并放置到货架上,等待分拣。上架时,一个货架中仅放 置同一种货品。为简化问题,不考虑货架...

2022-05-03 08:48:22 11482 71

原创 第十届泰迪杯数据挖掘挑战赛A题解题思路附代码

A题:农田害虫图像识别赛题描述一、问题背景病虫害一直是农业生产中无法避免的问题,每年都会由此造成巨大的经济损失。为了对农田病虫害进行有效的预防和控制,需要收集有害生物信息,在此基础上进行虫情分析。由于农田害虫的多样性和信息类型的复杂性,通过人工观察统计的传统害虫监测方式已经难以满足现代大规模农业生产对虫害预防工作的需要。近年来出现的虫情测报灯是虫情信息采集的智能设备,可以在无人...

2022-05-02 17:14:49 2738 8

原创 labelImg的使用教程,快捷键,用于标注voc或者yolo格式的数据

labelImg是用于图像标注的软件,其用途是为制作xlm格式的标签或者是txt格式的标签,两种标签格式都可以作为YOLO5的训练标签。1.安装安装labelImg的方法是直接依托pip安装的,其命令如下:pip install labelImg我这里已经安装过了,所以显示的是已经有了。2.调用调用labelImg时,只需要在命令窗口输入即可。labelImg也可以在你需要标注的文件内,直接鼠标右键加shift进入在此处打开powershell,然后输入labelIm

2022-05-01 09:15:51 8946

原创 YOLOv5训练自己的数据集

1.找到代码:YOLO5的代码可以在GitHub上找到,最好是用最新的代码。YOLO5https://github.com/ultralytics/yolov5可以选择在网站上面下载代码,或者用命令克隆代码也行;git clone https://github.com/ultralytics/yolov5 代码克隆好以后会放在当前克隆命令文件夹的yolov5文件里。2.配置环境:YOLO5要求python大于等于3.7.0,pytorch大于等于1.7版本。可以根据自己的硬件设.

2022-04-25 12:27:34 844

原创 向CSV文件写入多个内容的方法。

1.使用pandas写入内容。依托pandas中的DataFrame函数,实现对数据的写入。这是按列的方法写入CSV文件中,即每个参数保存的是要写入的每列的元素。下面是一个简单的示例:import csvimport pandas as pdlist=['0001.jpg',1312,151,1651,1561,1561,51658,100]index=[]tupan=[]x1=[]x2=[]x3=[]x4=[]x5=[]x6=[]x7=[]list_n=[]

2022-04-25 12:26:50 5679

原创 python使用random.sample将数据集随机划分为训练集与验证集并另存在文件夹中,设置随机种子

在做深度学习或者其他学习需要的时候,要求我们将数据集划分为训练集和验证集,一般来说按照9:1,8:2的比例划分训练集和验证集都是可以的。我们基于random.sample函数来实现对数据的划分。假设我们数据摆放如下:images里面存放的 是训练的图片,labels里面存放的是图片的标签信息,如TXT,xml等信息。我们最终做成的结果如下:在每一个文件夹里都存在一个train文件和val文件,val里存放的文件来源是从train里面随机抽取出来的。train与val里面的数

2022-04-25 12:26:16 8504 3

原创 YOLO5的数据增强和权重设置hyp.scratch-med.yaml文件解读,degrees角度旋转和水平、垂直翻转解释

在新的YOLO5代码中,其中的超参数设置文件已经变成了5个,如下:放在data文件夹下得hyps文件夹中。作者对于这些文件的解释如下:这是什么意思呢?可以翻译为中文看看:这样是不是就比较清楚了。这个文件的调用命令在train.py里面,如下:那么我们接下来看看这个hyp.scratch-med.yaml超参数设置文件里面都有些什么内容吧。#YOLOv5 🚀 by Ultralytics, GPL-3.0 许可证#用于从头开始进行中等增强 COCO 训练的超...

2022-04-22 17:52:04 11528 3

原创 Overriding model.yaml nc=80 with nc=28

在使用yolov5训练自己的数据集的时候可能会在运行代码的输出过程中会出现如下的一个信息,但是代码依旧能够运行。这个的意思是说模型中设定的分类类别与你自己在.yaml文件中配置的nc数值不匹配,只需要修改模型.yaml文件即可。找到你自己所用的模型对应的.yaml文件,在model文件夹里,以yolov5s为例:修改如下即可:如果这样修改之后还是出现这样的提示,Overriding model.yaml nc=80 with nc=28那么可以再看看train.py文...

2022-04-20 15:02:33 6251 4

原创 WARNING: NMS time limit 1.060s exceeded

在使用yolo5训练数据时候会出现这样的警告:WARNING: NMS time limit 1.060s exceeded其实这也不能算是错误,是一种正常的现象。在训练的早期阶段发出警告是很正常的,因为网络仍在学习课程的特征。因此,在早期阶段,网络“几乎随机”给出了很多猜测,因为它不确定正确的特征!经过一些训练时期(可能几十或几百个,取决于数据集),网络将更加确定其预测,并且警告将自然消失。...

2022-04-20 14:49:56 9271 2

原创 pytorch如何指定GPU设备运行代码

查看自己的GPU设备:nvidia-smi在某一块设备上运行代码的基本条件:1.有这个设备;2.代码所需的数据在这块设备上,代码所需的数据是指网络的模型以及训练数据两部分,只要这两部分在同一块设备上,就可以运行。1.单GPU设备:1.1使用DataParallel()函数:由于使用的是单GPU,所以其设备编号一定是0.所以这样默认的调用GPU0.impor torch.nn as nn# 模型加载# 假设模型初始化如下:model=VGG16()# 将其指

2022-04-19 15:05:44 2587 1

原创 Linux服务器成功安装CUDA11.3和cudnn

说在前面:NVIDIA的显卡驱动与CUDA的版本并不是严格的一一对应关系,CUDA实际上也只是一个工具包,我们可以根据自己的需求进行安装,即可以安装多个CUDA版本。同时CUDNN是一个SDK,专门用于神经网络的加速包,它与CUDA也没有严格的一一对应关系,可以选择多个版本的CUDNN进行安装。虽然说不是严格的对应,不过还是要服从大版本的对应,即安装之前查看GPU驱动版本与CUDA版本的对应关系,选择对应的版本进行安装,避免不兼容而报错的错误。查看版本对应关系https://docs.nvidia.

2022-04-19 15:04:16 17503 4

原创 python数据处理之pandas.read_csv()用法详解

def read_csv( filepath_or_buffer: FilePathOrBuffer, sep=lib.no_default, delimiter=None, # Column and Index Locations and Names header="infer", names=None, index_col=None, usecols=None, squeeze=False, p

2022-04-15 22:11:21 5968

原创 Linux服务器成功重装centos7系统,图形界面安装

在某些情况下,我们可能会遇到重装服务器操作系统的需求,比如服务器长时间没用,不记得其登录密码,嫌弃以前的系统不好,或者想要换一个操作系统。下面就详细指导如何安装centos7系统的图形界面。假设前提是我们已经拥有了一个制作好centos7系统的镜像U盘,如果没有的话可以百度一下如何用U盘制作一个centos7的系统镜像。1.读入操作系统将U盘插在服务器上,然后重启服务器,按F11进入bost 系统菜单界面,然后选择U盘的名称,选择进入,就可以看到centos7的安装选项了。第一个选项

2022-04-12 20:48:37 6848 1

原创 Linux服务器修改系统时间

Linux服务器在某些情况下可能会导致系统时间与当前时间不一致的情况,比如说操作系统之后,或者长时间断电之后,或者多次重启之后,或者是上一次设置时间时没有将其写入系统中,导致重启后时间失效的。下面就记录一下如何修改系统时间:查看系统的当前时间:date显示的是2019年的时间,与当前时间不匹配。我们直接手动修改时间,不需要去改什么时区之类的东西:输入一下命令修改年月日:date -s 12/04/2022修改时分秒:date -s 20:09:40..

2022-04-12 20:12:28 2842

原创 解决Linux服务器(Windows)tqdm进度条不待在一行,总是换行的情况。(tqdm详解)

在运行代码时,会有一个进度条,显示当前代码运行的进度,但是有时会出现进度条总是换行的情况,这就让人很不爽,必须找个方法解决了。我们来看一下tqdm的参数,及其说明: def __init__(self, iterable=None, desc=None, total=None, leave=True, file=None, ncols=None, mininterval=0.1, maxinterval=10.0, miniters=None,

2022-04-12 18:52:22 6891

原创 Linux服务器成功安装TensorFlow-GPU并成功调用GPU

在我们做深度学习的时候,需要高速大量的运算,这就对我们的设备要求较高。在服务器上运行代码就成了一个不错的选择,但是服务器与我们常用的Windows系统是不一样的,Windows系统是图形交互界面的,我们完成所有的工作只需要点点点就行了,但是服务器就不一样,服务器多数都是命令交互式的,我们需要输入一个命令,然后在去查看或者修改东西。下面就是在服务器运行深度学习代码的一个基础环境搭建教程,基于TensorFlow的。假设我们拿到的是一个全新的安装好操作系统的服务器,那么我们需要进行一下几个步骤:1.

2022-04-12 10:39:22 9479

原创 古诗词与代码之间不得不说的二三事。

壹.古诗词古诗词宽泛的来说,就是古人写的诗词,不过其大多具有以下特点:1.句子的整齐古典诗歌,除了词和曲以外,多数是句子长短整齐的,如《诗经》基本上是四言,《楚辞》大体上是六言加上“兮”字,古体诗和近体诗大多数是五言或七言。2.平仄和对仗平、仄是汉语声调的两大类。在近体诗和词、曲中,用字的平仄有相当严格的规定,在一些位置上,必须用平声字,在另一些位置上,必须用仄声字。比如:“国破山河在,城春草木深”(杜甫《春望》),就是用“仄仄仄平平,...

2022-04-10 16:26:42 1639

原创 pytorch载入数据与对应的标签,使用torch.utils.data详解,DataLoader的使用

在进行深度学习处理的时候,我们需要将数据输入到神经网络中进行训练,训练网络的学习能力,其实是根据一定的规则更新网络节点中的参数,而这个规则的来源就是依赖于数据与标签。我们需要将数据与标签相匹配,才能让网络进行训练,比如说网络学习到了一定的特征,而查阅此时的标签信息,比如说是车,那么网络就可以记住这样的特征表示的是车。这就要求我们输入的数据与数据标签是要对应的,在pytorch中,我们使用torch.utils.data 类来实现。函数的中文文档:torch.uutils.datahttps://py

2022-04-09 13:48:37 11606 2

原创 python数学建模之用sympy.solve求解方程组的解

在sympy.solve(expression)方法的帮助下,我们可以很容易地求解数学方程,它将返回使用sympy.solve()方法作为参数提供的方程的根。参考文档:参考文档https://www.geeksforgeeks.org/python-sympy-solve-method/在下面这个例子中,我们可以看到通过使用sympy.solve()方法,我们可以求解数学表达式,这将返回该方程的根。首先将变量符号化,然后在求解。例1:求解方程组的解,结果是-2,2.from sy..

2022-04-09 12:12:21 15819 5

原创 Linux服务器配置网络,可修改服务器Ip与Mac地址

在服务器的网络配置中,需要同时配置这两种网络,才能使服务器正常使用。使用内网是为了保证我们的服务器处在一个安全的网络环境中,可以减少外部病毒的影响,而访问外网是为了方便我们配置服务器一些资源,如驱动程序,安装包等。首先查看服务器的Ip:显示网卡的名字,Ip,Mac地址等信息。用一下命令都可以查看。ifconfigip aip addr修改网络配置文件:首先cd到配置文件目录下:cd /etc/sysconfig/network-scripts查看该文件夹下得所有文件:

2022-04-09 12:12:04 5675

原创 Linux服务器查看Ip地址

有时候我们在遇到一台服务器需要查看Ip时,可以用命令查看。ifconfig红框中显示的就是目前服务器的Ip。同样也可以试试其他命令:ip addrs也可以查看到服务器的Ip地址。可以ping一下自己的Ip,看看能不能成功连接:查看网络是否连接成功,有两种网络,一种是自己使用的内部局域网,另一种是公共的可访问网络,如百度,搜狐等,我们成为外网。在服务器的网络配置中,需要同时配置这两种网络,才能使服务器正常使用。使用内网是为了保证我们的服务器处在一个安全的网.

2022-04-08 16:02:58 10094

原创 python数学建模之用scipy.optimize.minimize解决高次非线性规划问题

在实际的数学建模应用中,我们会遇到很多约束条件是二次的,三次的或者是高次函数的情况,这样用 optimize.linprog()来解决就显得不适用了,因此我们使用scipy.optimize下得minimize函数来解决这个问题。官方文档:SciPy API referencehttps://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html#scipy.optimize.minimizescipy.o

2022-04-08 15:18:08 5830 7

原创 python数学建模之用optimize.linear_sum_assignment解决模型优化之指派问题

指派问题是那些派完成任务效率最高的人去完成任务的问题。在生活中经常遇到这样的问题,某单位需完成n项任务,恰好有n个人可承担这些任务。由于每人的专长不同,各人完成任务不同(或所费时间),效率也不同。于是产生应指派哪个人去完成哪项任务,使完成n项任务的总效率最高(或所需总时间最小)。这类问题称为指派问题或分派问题。假设其指派矩阵如上所示,其意思是说列项表示人数,行项表示每人完成某项任务的时间或者效率,目标函数即为求取给每人安排一项任务,使所有人完成任务的时间最短或者效率最高。如3表示第1个人完成

2022-04-08 15:14:37 11836

原创 python数学建模之用随机法解决非线性规划问题

蒙特卡罗法(又称统计试验法)是描述装备运用过程中各种随机现象的基本方法,而且它特别适用于一些解析法难以求解甚至不可能求解的问题。用蒙特卡罗法来描述装备运用过程是1950年美国人约翰逊首先提出的。这种方法能充分体现随机因素对装备运用过程的影响和作用。更确切地反映运用活动的动态过程。在装备效能评估中,常用蒙特卡罗法来确定含有随机因素的效率指标,如发现概率,平均毁伤目标数等;模拟随机系统中的随机现象并计算其数字特征;对一些复杂的装备运用行动,通过合理的分解,将其简化成一系...

2022-04-07 16:10:26 808

原创 python数学建模之用scipy.optimize.linprog实现线性规划

在做数学建模时,我们经常会遇到在约束条件下求解目标的最优解的情况,如:在如下约束条件下求解-x0+4x1的最小值。在求解这个问题的过程中,我们可以使用不同的工具去解决,如MATLAB、Java等语言都是可以解决的,不过我经常常用的是python,所以就想用python来解决一下这类的问题,顺手记录一下,免得以后忘了。参考文档如下:scipy.optimize.linproghttps://docs.scipy.org/doc/scipy/reference/generated/scipy..

2022-04-07 15:35:59 3775

原创 pytorch实现深度学习常用图像分类数据集的划分与读取(Oxford-102flower,CIFAR10/CIFAR100)

Oxford-102flower是牛津工程大学于2008年发布的用于图像分类的数据集,总共分为102个类,每个类包含40-258张图像,一共8189张图像。数据下载地址https://www.robots.ox.ac.uk/~vgg/data/flowers/102/下载图中1.4.5对应的文件,分别为数据的文件,标签的文件和划分的文件。数据下载解压后显示如下:数据中个别图像展示:下载好的图像放在一个jpg文件夹中,该文件夹中包含了所有的图像,但其图像排列顺序...

2022-04-05 10:41:10 7370 2

原创 Linux服务器常用命令

查看显卡信息:# lspci | grep -i nvidia查看到服务器上搭载的显卡型号为 Tesla K40m服务器显卡运行情况:# nvidia-smi第一行是当前的时间信息,NVDIA-SMI显示的显卡驱动的版本,与Driver Version 显示的信息一致,CUDA Version 显示的是CUDA 的最新支持版本,也可以兼容低版本的CUDA。0 表示的是第一块GPU的编号,在调用GPU时,指定GPU则是指定GPU前面的标号,如1,2,3等等。Tesla K.

2022-04-04 11:29:00 2794

原创 Linux服务器成功安装cuda9.2 and cudnn

安装之前查看GPU驱动版本与CUDA版本的对应关系,选择对应的版本进行安装,避免不兼容而报错的错误。查看服务器的版本:# nvidia-smi红框对应的即为驱动的版本 ,可以看到最大支持cuda11.2选择与之对应的cuda版本进行下载即可。下载cuda:官网下载地址进入之后选择与服务器匹配的版本,并进行下载:选择一个版本进去,选择合适的配置,下载完成之后是一个.run文件将下载好的文件上传至服务器,进行安装。# sudo sh cuda_9.2..

2022-04-03 10:42:02 4585 1

原创 Linux解决xshell Connection closed by foreign host问题

ssh服务,服务器远程连接掉线

2022-04-02 11:30:36 4468

原创 linux服务器成功卸载和安装anaconda(详细)

下载anaconda,下载之后是一个.sh文件,并将其上传至服务器节点。anaconda 官网https://www.anaconda.com/将文件路径cd到存放刚才下载的文件路径,运行如下命令,开始安装:# bash Anaconda3-5.3.1-Linux-x86_64.sh然后就是一路yes+enter:安装完成之后需要配置环境:# vim ~/.bashrc进入文件之后,添加如下命令:path 即为anaconda所在位置# export PATH=path/a

2022-04-01 18:58:52 15604 2

原创 服务器,Linux,centos7成功安装显卡驱动(超详细)

登录NVIDIA官方驱动下载地址:下载地址https://www.nvidia.cn/Download/index.aspx?lang=cn 选择对应自己的驱动版本并进行下载,保存为.run文件查看GPU卡的信息# lspci | grep -i nvidia执行结果如下:验证系统是否安装gcc,g++,tar,make,如果没有安装,就手动配置yum源进行安装# gcc –v# g++ -v # yum install gcc gcc-c++ tar make..

2022-04-01 16:36:16 22726 10

原创 transforms.ToTensor()和归一化函数transforms.Normalize()的使用

transforms对数据做预处理

2022-03-19 10:01:52 9964

YOLOv5网络结构完整版,Visio源文件

YOLOv5,6.0版本完整版网络结构图,包含SPPF结构

2022-12-07

图像分类数据集Oxford-102花分类数据集

自然图像分类数据集Oxford-102。Oxford 102 Flowers Dataset 是一个花卉集合数据集,主要用于图像分类,它分为 102 个类别共计 102 种花,其中每个类别包含 40 到 258 张图像。 2008年由牛津大学工程科学系发布。面向深度学习人群,可用于验证神经网络性能,主流的VGG,GOGELNET,残差网络等网络都可以用于训练。适合新手人群做学习使用,可将其划分为6149张图片做训练,1020张图片做验证,1020张图片做测试。

2022-04-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除