jetson_nano_control
IIC与编码电机通讯i2cdetect -y -r -a 1查找设备地址;
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293import smbus#需要安装的库文件import timeI2C_ADDR = 0x34 # I2C设备地址ADC_BAT_ADDR = 0 # 电压地址MOTOR_TYPE_ADDR = 20 # 编码电机类型设置MOTOR_ENCODER_POLARITY_ADDR = 21 # 设置编码方向极性MOTOR_FIXED_PWM_ADDR = 31 # 固定PWM控制MOTOR_FIXED_SPEED_ADDR = 51 # 固定转速控制MOTOR_ENCODER_TOTAL_ADDR = 60 # 4个编码电机各自的总脉冲值MOTOR_TY ...
yolo早停
yolov7自动停止(设置patience)且输出最优模型时的PR图(test best.py)早停的意义一、早停法简介(Early Stopping)当我们训练深度学习神经网络的时候通常希望能获得最好的泛化性能(generalization performance,即可以很好地拟合数据)。但是所有的标准深度学习神经网络结构如全连接多层感知机都很容易过拟合:当网络在训练集上表现越来越好,错误率越来越低的时候,实际上在某一刻,它在测试集的表现已经开始变差。
模型的泛化能力通常使用模型在验证数据集(validation set)上的表现来评估。随着网络的优化,我们期望的理想中的泛化错误如图1所示。即当模型在训练集上的误差降低的时候,其在验证集上的误差表现不会变差。反之,当模型在训练集上表现很好,在验证集上表现很差的时候,我们认为模型出现了过拟合(overfitting)的情况。
解决过拟合问题有两个方向:降低参数空间的维度或者降低每个维度上的有效规模(effective size)。降低参数数量的方法包括greedy constructive learning、剪枝和权重共享等。降低每个参 ...
yolo剪枝
yolov7剪枝环境torch_pruning ==1.2.2
thop
参数解释12#pruningparser.add_argument('--prune_method', type=str, default=None, help='prune method')#定义方法如random,l1等
方法 group_sl growing_reg`暂时不可用对yolov7的spp层不能
存在sparsity_learning = True就需要稀疏训练
1parser.add_argument('--speed_up', type=float, default=2.0, help='speed up')
保证速度
为2.0时就是当原模型与现模型的计算量的比值为2时停止剪枝
12345678parser.add_argument("--reg", type=float, default=5e-4)#稀疏话参数学习率parser.add_argument("--delt ...
yolo计算
yolo值的计算YOLOv5-不同map值计算解决思路1,解决关键代码在276行,如下加粗部分
2,打印ap的值:结果如下图所示:输出结果12行,代表12个类别;每一行有10个数,分别代表ap[50, 55, 60, 65, 70, 75, 80, 85, 90, 95], 所以ap75=ap[5], map75=ap.mean[:,5]
修改部分 190-191行
12345678# 修改前s = ('%22s' + '%11s' * 6) % ('Class', 'Images', 'Instances', 'P', 'R', 'mAP50', 'mAP50-95')tp, fp, p, r, f1, mp, mr, map50, ap50, map = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0# 修改后s = ('%22s' ...
学习率调整策略
学习率调整策略——lr_scheduler学习率是深度学习训练中至关重要的参数,很多时候一个合适的学习率才能发挥出模型的较大潜力。所以学习率调整策略同样至关重要,这篇博客介绍一下Pytorch中常见的学习率调整方法。
1.steplr这是最简单常用的学习率调整方法,每过step_size轮,将此前的学习率乘以gamma。
1scheduler=lr_scheduler.StepLR(optimizer, step_size=30, gamma=0.1)
2. MultiStepLRMultiStepLR同样也是一个非常常见的学习率调整策略,它会在每个milestone时,将此前学习率乘以gamma。
1scheduler = lr_scheduler.MultiStepLR(optimizer, milestones=[30,80], gamma=0.5)
3. ExponentialLRExponentialLR是指数型下降的学习率调节器,每一轮会将学习率乘以gamma,所以这里千万注意gamma不要设置的太小,不然几轮之后学习率就会降到0。
1scheduler=lr_sc ...
脑PET图像分析和疾病预测挑战赛
脑PET图像分析和疾病预测挑战赛一、赛事背景脑PET全称为脑部正电子发射计算机断层显像(brain positron emission tomography PET),是反映脑部病变的基因、分子、代谢及功能状态的显像。它是利用正电子核素标记葡萄糖等人体代谢物作为显像剂,通过病灶对显像剂的摄取来反映其代谢变化,从而为临床提供疾病的生物代谢信息,为脑癫痫病、脑肿瘤、帕金森病、阿尔茨海默综合征等提供了有效的检测手段。可利用脑PET图像检测出轻度认知障碍病灶,并提前介入治疗,从而延缓发病,对后续患者康复治疗有着积极的意义。因此本赛题以轻度认知障碍为例对脑PET图像进行分析与疾病预测。
二、赛事任务为研究基于脑PET图像的疾病预测,本次大赛提供了海量脑PET数据集作为脑PET图像检测数据库的训练样本,参赛者需根据提供的样本构建模型,对轻度认知障碍进行分析和预测。
脑PET图像检测数据库,记录了老年人受试志愿者的脑PET影像资料,其中包括确诊为轻度认知障碍(MCI)患者的脑部影像数据和健康人(NC)的脑部影像数据。
被试者按医学诊断分为两类:
NC:健康
MCI:轻度认知障碍
三、 评审规则1.数 ...
卷积计算量
卷积计算量的计算普通卷积当计算一个神经网络模型的 FLOPs 时,让我们以一个简化的卷积神经网络(CNN)为例。假设我们有一个包含两个卷积层和一个全连接层的模型。
假设模型的结构如下:
卷积层1:输入特征图大小为 32x32,卷积核大小为 3x3,输出通道数为 64。
池化层:最大池化,池化核大小为 2x2。
卷积层2:输入特征图大小为 16x16,卷积核大小为 3x3,输出通道数为 128。
全连接层:输入特征数为 128,输出特征数为 10。
我们将使用以下计算公式来估计 FLOPs:
对于卷积层,FLOPs = 输入特征图大小 × 卷积核大小 × 输出通道数。
对于全连接层,FLOPs = 输入特征数 × 输出特征数。
我们假设浮点运算包括乘法和加法。
卷积层1的 FLOPs: FLOPs = 32x32x3x3x64 = 1,179,648
池化层不涉及大量浮点运算,可以忽略。
卷积层2的 FLOPs: FLOPs = 16x16x3x3x128 = 1,179,648
全连接层的 FLOPs: FLOPs ...
cv
【Datawhale CV夏令营】 1 Baseline的基本改进 (I)1 赛题重述1.1 赛题背景机器虽然被大量用到农业生产中,但人还是不可或缺的因素。通过农民身份识别,可以真实客观地记录农民的状态,为农场管理和农产品追溯提供真实的客观数据;较之直接存储视频,可以有效地降低存储空间;自动识别也比人工监管,大幅度提高效率,减少人工成本。
2.2 赛事任务农民身份识别需要对农民进行分类,本次大赛提供了中国农业大学实验室视频制成的图像序列。参赛选手先对图像进行预处理,并制作样本,对图像中的农民进行识别。选手需要自行训练模型,并上传自己训练好的模型和权重。
3.3 赛题数据集本次比赛为参赛选手提供了25名农民身份,每个身份包含10段视频制成的图像序列,选手需要对图像序列进行预处理,打标签,并对农民进行身份识别。
1.4 评价指标本模型依据提交的结果文件,采用Macro-F1进行评价,其中Macro-F1定义如下:
2 Baseline2.1 传统图像特征提取方法通过计算图像中的一些统计指标,如白色像素数目、均值、方差等指标手动构建特征,然后使用机器学习模型进行分类。在此不再赘述。
2.2 ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment