ubuntu16.04使用yolox-tiny,训练自己的数据集并验证

【目标检测】YOLOX ,YOLO系列的集大成者 YOLOX 详解 阅读详情

一、安装

  • pytorch==1.7.1
  • torchvision-0.8.2
  • cuda10.1
git clone https://github.com/Megvii-BaseDetection/YOLOX
conda create -n yolox3.7 python=3.7
source activate yolox3.7
cd YOLOX
git clone https://github.com/NVIDIA/apex
cd apex
pip install https://download.pytorch.org/whl/cu101/torch-1.7.1%2Bcu101-cp37-cp37m-linux_x86_64.whl
pip install https://download.pytorch.org/whl/cu101/torchvision-0.8.2%2Bcu101-cp37-cp37m-linux_x86_64.whl
pip3 install -v --disable-pip-version-check --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
cd ..
pip3 install -r requirements.txt
python3 setup.py install
pip3 install cython
pip3 install 'git+https://github.com/cocodataset/cocoapi#subdirectory=PythonAPI'
pip install loguru thop tabulate
pip install opencv-python
  • 问题cannot import name 'PILLOW_VERSION' from 'PIL',方法conda install pillow==6.1

二、DEMO

  • 下载预训练文件,目前github上的有问题
python tools/demo.py image -f exps/default/yolox_tiny.py -c yolox_tiny.pth --path image.png  --conf 0.5 --nms 0.45 --tsize 640 --save_result --device gpu
  • 问题没有yolox模块,方法在demo.py里最前面加上import sys和sys.path.append("/home/lwd/code/dl/YOLOX")
  • 问题torch.nn‘ has no attribute ‘SiLU‘,方法对应行改成module = SiLU()
  • 问题yolox_tiny.pth is a zip archive,是因为pytorch版本低于1.6,遂决定使用cuda10.1

三、训练自己的数据集

  • 参考这篇,使用VOC格式训练
  • 先使用labelme给数据打好标签,然后在图片和json文件的目录下运行以下代码
  • 需要先新建saved_path对应的文件夹
  • 和参考博文不一样的是,坐标使用int,因为使用浮点数在训练时会出现错误:invalid literal for int() with base 10,错误的原因是直接将浮点型的字符串转成int,比如int('111.0'),应该是int(float('111.0'))。
import os
import numpy as np
import codecs
import json
from glob import glob
import cv2
import shutil
from sklearn.model_selection import train_test_split

labelme_path = "./"              
saved_path = "./MyVOC/VOC0520/"                


if not os.path.exists(saved_path + "Annotations"):
    os.makedirs(saved_path + "Annotations")
if not os.path.exists(saved_path + "JPEGImages/"):
    os.makedirs(saved_path + "JPEGImages/")
if not os.path.exists(saved_path + "ImageSets/Main/"):
    os.makedirs(saved_path + "ImageSets/Main/")
    

files = glob(labelme_path + "*.json")
files = [i.split("/")[-1].split(".json")[0] for i in files]

#4. xml
count = 0
for json_file_ in files:
    json_filename = labelme_path + json_file_ + ".json"
    json_file = json.load(open(json_filename,"r",encoding="utf-8"))
    height, width, channels = cv2.imread(labelme_path + json_file_ +".jpg").shape
    with codecs.open(saved_path + "Annotations/"+json_file_ + ".xml","w","utf-8") as xml:
        xml.write('<annotation>\n')
        xml.write('\t<folder>' + 'UAV_data' + '</folder>\n')
        xml.write('\t<filename>' + json_file_ + ".jpg" + '</filename>\n')
        xml.write('\t<source>\n')
        xml.write('\t\t<database>The UAV autolanding</database>\n')
        xml.write('\t\t<annotation>UAV AutoLanding</annotation>\n')
        xml.write('\t\t<image>flickr</image>\n')
        xml.write('\t\t<flickrid>NULL</flickrid>\n')
        xml.write('\t</source>\n')
        xml.write('\t<owner>\n')
        xml.write('\t\t<flickrid>NULL</flickrid>\n')
        xml.write('\t\t<name>NULL</name>\n')
        xml.write('\t</owner>\n')
        xml.write('\t<size>\n')
        xml.write('\t\t<width>'+ str(width) + '</width>\n')
        xml.write('\t\t<height>'+ str(height) + '</height>\n')
        xml.write('\t\t<depth>' + str(channels) + '</depth>\n')
        xml.write('\t</size>\n')
        xml.write('\t\t<segmented>0</segmented>\n')
        for multi in json_file["shapes"]:
            points = np.array(multi["points"]).astype(int)
            xmin = min(points[:,0])
            xmax = max(points[:,0])
            ymin = min(points[:,1])
            ymax = max(points[:,1])
            label = multi["label"]
            if xmax <= xmin:
                pass
            elif ymax <= ymin:
                pass
            else:
                xml.write('\t<object>\n')
                xml.write('\t\t<name>'+ str(label)+'</name>\n') 
                xml.write('\t\t<pose>Unspecified</pose>\n')
                xml.write('\t\t<truncated>1</truncated>\n')
                xml.write('\t\t<difficult>0</difficult>\n')
                xml.write('\t\t<bndbox>\n')
                xml.write('\t\t\t<xmin>' + str(xmin) + '</xmin>\n')
                xml.write('\t\t\t<ymin>' + str(ymin) + '</ymin>\n')
                xml.write('\t\t\t<xmax>' + str(xmax) + '</xmax>\n')
                xml.write('\t\t\t<ymax>' + str(ymax) + '</ymax>\n')
                xml.write('\t\t</bndbox>\n')
                xml.write('\t</object>\n')
                print(json_filename,xmin,ymin,xmax,ymax,label)
                count+=1
        xml.write('</annotation>')
print(str(count)+' boxes')       
#5.
image_files = glob(labelme_path + "*.jpg")
print("copy image files to VOC/JPEGImages/")
for image in image_files:
    shutil.copy(image,saved_path +"JPEGImages/")
    
#6.split files for txt
txtsavepath = saved_path + "ImageSets/Main/"
ftrainval = open(txtsavepath+'/trainval.txt', 'w')
#ftest = open(txtsavepath+'/test.txt', 'w')
ftrain = open(txtsavepath+'/train.txt', 'w')
fval = open(txtsavepath+'/val.txt', 'w')
total_files = glob(saved_path+"Annotations/*.xml")
total_files = [i.split("/")[-1].split(".xml")[0] for i in total_files]
#test_filepath = ""
for file in total_files:
    ftrainval.write(file + "\n")
#test
#for file in os.listdir(test_filepath):
#    ftest.write(file.split(".jpg")[0] + "\n")
#split
train_files,val_files = train_test_split(total_files,test_size=0.15,random_state=42)
#train
for file in train_files:
    ftrain.write(file + "\n")
#val
for file in val_files:
    fval.write(file + "\n")

ftrainval.close()
ftrain.close()
fval.close()
#ftest.close()
  • 然后ln -s /home/lwd/data/MyVOC /home/lwd/code/dl/YOLOX/datasets/MyVOC(换成自己的绝对路径哦),目录结构如下图
    在这里插入图片描述
  • 接下来修改代码
    • cp exps/default/yolox_tiny.py exps/example/yolox_voc/yolox_voc_tiny.py
    • gedit exps/example/yolox_voc/yolox_voc_tiny.py
    • 在init函数里加self.num_classes = 3,换成你的类别数,如果修改input_size和test_size,注意是先高后宽,即(h,w)
    • 把exps/example/yolox_voc/yolox_voc_s.py里init函数之外的东西复制过来。
    • 修改训练集路径为data_dir=os.path.join("/home/lwd/code/dl/YOLOX/datasets", "MyVOC"),和image_sets=[('0520', 'train')],。
    • 修改测试集路径为data_dir=os.path.join("/home/lwd/code/dl/YOLOX/datasets", "MyVOC"),和image_sets=[('0520', 'val')],
    • 再修改类别名称
    • gedit yolox/data/datasets/voc_classes.py
    • 把VOC_CLASSES改成自己的
  • 执行python setup.py install编译yolox
  • 开始训练python tools/train.py -f exps/example/yolox_voc/yolox_voc_tiny.py -d 1 -b 2 --fp16 -c yolox_tiny.pth
  • 训练结果在YOLOX_outputs/yolox_voc_tiny中

四、验证训练结果

  • gedit yolox/data/datasets/__init__.py
  • 加上from .voc_classes import VOC_CLASSES
  • gedit tools/demo.py
  • 把里面的COCO_CLASSES全改成VOC_CLASSES
  • python setup.py install
  • python tools/demo.py image -f exps/example/yolox_voc/yolox_voc_tiny.py -c /home/lwd/code/dl/YOLOX/YOLOX_outputs/yolox_voc_tiny/best_ckpt.pth --path 0012.jpg --conf 0.5 --nms 0.45 --tsize 640 --save_result --device gpu

五、批量验证图片

  • 修改tools/demo.py中if args.demo == "image":部分:
if args.demo == "image":
        lwd=os.listdir(args.path)
        for li in lwd:
        	if not li[-1] == 'g': continue
        	image_demo(predictor, vis_folder, args.path+'/'+li, current_time, args.save_result)
  • python tools/demo.py image -f exps/example/yolox_voc/yolox_voc_tiny.py -c /home/lwd/code/dl/YOLOX/YOLOX_outputs/yolox_voc_tiny/best_ckpt.pth --path /home/lwd/data/20220523 --conf 0.15 --nms 0.45 --tsize 640 --save_result --device gpu
  • 上面的命令改变了path参数的值,填你要测试的图片所在的文件夹

六、浅析代码

  • tools/train.py调用yolox/core/trainer.py调用yolox/exp/yolox_base.py中的函数get_model构建模型
  • 模型在yolox/models/yolox.py中,模型的一部分在yolox/models/yolo_head.py中,损失函数也在里面
Yolox_nano可视化网络结构图 Yolox共有七种网络结构,包含2种轻量级网络,和5种标准网络。 ① 轻量级网络 (1) Yolox-Nano可视化网络结构图:点击查看 (2) Yolox-Tiniy可视化网络结构图:点击查看 ② 标准网络 (1)Yolox-s可视化网络结构图:点击查看 (2) Yolox-m可视化网络结构图:点击查看 (3) Yolox-l可视化网络结构图:点击查看 (4) Yolox-x可视化网络结构图:点击查看 (5) Yolox-Darknet53可视化网络结构图:点击查看 此外也放上Yolov3、Yolov4、 阅读详情

相关推荐

yolo-tiny的训练

yolov2-tiny和yolov3-tiny由于速度快,占内存少等优点,被广泛使用yolov2-tiny的训练登录服务器ssh zibojia@...org使用yolov2-tiny.cfg打开,进行更改# Testing # batch=1 # subdivisions=1 # Training batch=64 subdivisions=2 width=416 height=416 chan...

where_is_horse的博客 1万+

YOLOX目标检测实战:TensorRT加速部署

YOLOX是旷视科技新近推出的高性能实时目标检测网络,性能超越了YOLOv3/YOLOv4 /YOLOv5。 TensorRT是针对英伟达GPU的加速工具。本课程在Ubuntu系统上详细演示使用TensorRT对YOLOX进行加速和部署。特别是讲述了针对自己数据集上训练出的YOLOX的TensorRT加速部署方法。

跑通yolox-s官方源码(可与yolov5s做对比试验)

跑通yolox-s官方源码(可与yolov5s做对比试验)

孟孟单单的博客 5558

YOLOX目标检测实战:Flask部署

YOLOX是旷视科技新近推出的高性能实时目标检测网络,性能超越了YOLOv3/YOLOv4 /YOLOv5。 利用YOLOX训练完自己的数据集后,如何向大众展示并提供落地的服务呢? 本课程将提供相应的解决方案,具体讲述使用Web应用程序框架Flask进行YOLOX的Web应用部署。用户可通过客户端浏览器上传图片,经服务器处理后返回图片检测数据并在浏览器中绘制检测结果。 本项目采取前后端分离的系统架构和开发方式,减少前后端的耦合。课程包括:YOLOX的Flask部署系统架构、Flask的安装、分别在Windows和Ubuntu系统上的部署演示、YOLOX的后端代码(Flask的服务程序代码、YOLOX的API接口代码)、前端代码(HTML、CSS、Javascript)、生产环境部署建议等。相关课程:《YOLOX目标检测实战:训练自己的数据集》https://edu.csdn.net/course/detail/35586《YOLOX目标检测实战:TensorRT加速部署》https://edu.csdn.net/course/detail/35716《YOLOX目标检测实战:OpenVINO加速部署》https://edu.csdn.net/course/detail/35791

【YOLO系列】YOLOX(含代码解析)

YOLOX是来自旷视团队的团队提出了,它再YOLO v3的基础上进行改进,是anchor free类模型。它使用decoupled head替代coupled head,提高head的表达能力。它使用multi positives的技巧,减少高质量预测框的损失。它使用SimOTA在不增加训练时间的前提下进行样本匹配。它使用Mosaic和Mixup进行更强形式的数据增强。多种技巧,让YOLOX模型具有高精度。

陶将的博客 3067

YOLOX系列模型详解 | 计算机视觉专家指南

YOLOX是目前热门的物体检测模型之一,由于它在速度和精度上的突出表现,吸引了越来越多的开发者的关注。在本篇文章中,我们将为大家详解YOLOX系列模型的改进和优化,并提供相应的源代码。本文对YOLOX系列模型的改进和优化进行了详细的介绍,并提供了相应的源代码实现。无论您是初学者还是专业人士,都可通过本文对YOLOX系列模型进行深入了解,并在实际应用中灵活运用。

JjtlReact的博客 895

YOLO目标检测算法演进核心技术解析:从单阶段检测到C2f、SPPF与Anchor-Free

目标检测是计算机视觉的核心任务之一,旨在识别图像中特定目标的位置与类别。其技术原理通常分为两阶段与单阶段检测,后者通过将检测任务重构为单一回归问题,实现了端到端的高效推理,为实时应用奠定了基础。在工程实践中,特征金字塔网络(FPN)通过融合多尺度特征显著提升了模型对不同尺寸目标的检测能力,而空间金字塔池化(SPP)及其快速版本SPPF则增强了模型对目标尺度变化的鲁棒性。这些技术的演进共同推动了检测精度与速度的平衡,广泛应用于安防监控、自动驾驶、工业质检等场景。本文聚焦于YOLO系列算法的核心改进,深入剖析了

weixin_30444105的博客 437

SECS/GEM协议中的关键指令详解:从S1F1到S9F9的完整指南

本文详细解析了SECS/GEM协议中从S1F1到S9F9的关键指令,涵盖设备状态管理、控制诊断、报警处理等核心功能。通过实际案例和调试技巧,帮助开发者掌握半导体制造设备通信标准,解决SECS/GEM协议在实际工程应用中的通讯难题,提升生产线智能化水平。

weixin_26899659的博客 397

【YOLOX】核心基础完整讲解

这两个数据增强会被关闭掉。而在此之前,Mosaic和Mixup数据增强,都是打开的,这个细节需要注意。(2)由于采取了更强的数据增强方式,作者在研究中发现,

mjiansun的专栏 9453

IEC 62056协议栈深度拆解:从物理层握手到应用层AARQ,一次完整的DLMS通讯抓包分析

本文深入解析IEC 62056协议栈(DLMS/COSEM)的全流程通信机制,从物理层握手到应用层AARQ建立,提供详细的抓包分析和实战指南。涵盖RS-485配置、HDLC帧解析、OBIS编码解读等核心内容,并附有常见故障排查技巧,助力开发者高效实现电能表数据采集。

weixin_29182481的博客 311

AI 编程组合之deepseek+vscode+cline插件,使用deepseek大模型实现代码自动生成

本文介绍了VSCODE下cline插件的安装结合DeepSeek-V3,ai编程的组合套件,举了两个例子一个是生成登录页面,一个是生成贪吃蛇游戏

技术博客 7万+

[深度学习][原创]yolox快速训练自己数据集方法

yolox据说是性能和精度超过yolov5全新设计anchor free的框架,目前框架还在火热更新中,本文将使用非常简单的步骤即可完成自己模型训练任务。 第一步:搭建自己的yolox环境,yolox支持windows和linux大家按照官方教程安装即可,这里不是本文重点介绍。 第二步准备数据集:一般我们用的是VOC数据集而不是coco数据集,yolox支持voc和coco,但是实际中对coco数据集支持更加友好。所以我们需要把voc数据集转coco数据集。我们首先打开软件 然后导入VOC数据集.

FL1623863129的博客 1404

Agentic AI应用架构师如何提升AI应用的灵活性

可扩展性(Scalability):快速添加新功能或扩展任务范围(如Agent从“客服”扩展到“供应链管理”);可修改性(Modifiability):调整Agent的决策逻辑或动作策略,无需重构整个系统;鲁棒性(Robustness):在环境异常或数据噪声下保持性能稳定;自适应(Self-Adaptation):自主学习新场景,无需人工干预。状态空间(S):Agent能感知的所有内部/外部状态(如用户需求、环境数据);动作空间(A):Agent能执行的所有动作(如调用工具、发送消息);

项目管理的博客 578

YOLOX目标检测实战:训练自己的数据集

YOLOX是旷视科技新近推出的高性能实时目标检测网络,性能超越了YOLOv3/YOLOv4 /YOLOv5。YOLOX使用 PyTorch开发,采用了Anchor-free机制、解耦头、Multi Positives、先进的标签分配策略和强数据增广等前沿技术。 本课程将手把手地教大家使用labelImg标注和使用YOLOX训练自己的数据集,完成一个多目标检测实战项目,可检测图像和视频中的足球和梅西两个目标类别。  本课程分别在Windows和Ubuntu系统上做项目演示。包括:安装YOLOX、标注自己的数据集、准备自己的数据集(自动划分训练集和验证集)、修改配置文件、训练自己的数据集、测试训练出的网络模型和性能统计。  

【2022】人工智能☆✨

1. 朴素⻉叶斯⽅法是⼀种 ( ) ⽅法。A.机器学习的分类B.不确定性推理C.知识表示答案:A解析:朴素贝叶斯分类器是基于贝叶斯定理与特征条件独立假设的分类方法。它通过学习训练数据集来预测未知数据的类别标签,因此属于机器学习中的监督学习分类方法。选项B不确定性推理和选项C知识表示虽然与朴素贝叶斯方法有一定的关联,但它们并不是朴素贝叶斯方法的主要应用领域或定义特性。2. 关于启发式搜索描述正确的是 ( )。

super_mochi1 391

使用cmd命令查看电脑是不是翻新机 如何查看自己电脑是不是翻新机

最近pdd啥的百亿补贴啊,什么品牌店啊,很多“假一赔十”,绝对“正品”都蹦出来了,很多人拿到以后,也上网查了各种鉴别方式,包括区分是不是翻新机之类的。本人亲自踩坑“pdd品牌店”,“假一赔十”,“绝对正品”等店铺,跟大家分享一下我得鉴别经验(说道分享鉴别经验了,大家也就不用好奇了,我肯定是买到翻新机了,mmp)。 第一步:准备好手机,开始录屏,没有完整的拆箱视频,可能不容易退货退款 第二步:拆箱,查看屏幕划痕(用手机闪光灯看,要不然看不清),然后查看屏幕有没有被擦过的痕迹 第三步:查看USB孔等插口有没有划

weixin_39417324的博客 1万+

【目标检测】yolo系列yolo x学习笔记(2021年旷视)

Decoupled Head(解耦头): 1)解耦头的好处: 精度带来提升; 收敛速度也明显加快; 2)解耦时控制计算量: 为了权衡速度和性能,使用 1个1x1 的卷积先进行降维,并在分类和回归分支里各使用了 2个3x3 卷积,最终调整到仅仅增加一点点参数。 Data Augmentation(数据增强): 1)Mosaic增强:Mosaic 经过 YOLOv5 和 v4 的验证,证明其在极强的 baseline 上能带来显著涨点。 2)Mosaic 配上 Copypast...

chen1234520nnn的博客 3108

QCC304x系列开发教程(实战篇)之5.2 QCC3040之提示音

earbud_init.c中,初始化table中UiPrompts_Init /*! \brief Table of initialisation functions */ static const init_table_entry_t appInitTable[] = { ......... {UiPrompts_Init, 0, NULL}, ......... } ui_prompts.c中是提示音音处理的主要逻辑和配置源文件 函数static void uiPro...

心跳包的博客 2391

YOLO系列目标检测算法——YOLOX

本文介绍了YOLO系列的一些有效的更新,得到了一个名为YOLOX的高性能anchor-free目标检测器。YOLOX配备了一些最新的先进的检测技术,即解耦头,anchor-free,和先进的标签分配策略,YOLOX在所有模型大小的速度和准确性与其他算法之间实现了更好的权衡。值得注意的是,本文将YOLOv3架构在COCO上的准确率提高到了47.3%,比目前的最佳实践高出3.0%。

AI-Mei的博客 4073

vue:npm安装pnpm报错,npm ERR! code ENOTFOUND,npm ERR! syscall getaddrinfo,npm ERR! errno ENOTFOUND详细排查解决!

vue2 vue3,npm install -g pnpm 安装出现错误,安装pnpm及解决安装失败问题,解决 npm无法安装pnpm问题,npm 安装 pnpm 时 报错 npm ERR! code ENOTFOUND,pnpm无法安装报错,vue npm install -g pnpm安装报错,request to http://registry.cnpmjs.org/pnpm failed, reason: getaddrinfo ENOTFOUND registry.cnpmjs.org,安装pnp

✅ 精选推荐文章 3608

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

使用yolox训练自己的数据集并测试

手把手教会你使用yolox训练自己的数据集并测试

pyscl01的博客 4243

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【YOLOX 解读】与 YOLOv5 匹敌的 anchor-free 目标检测器!

旷世首发,新一代 Anchor-free 目标检测框架!

不积跬步,无以至千里! 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【学习记录】在Ubuntu部署Yolox踩坑

1.我的系统环境是Ubuntu 18.04,python3.7,cuda10.2 2.为了让我服务器上安装的东西不产生版本冲突,我们使用conda创建一个yolox的环境变量来专门安装yolox需要的依赖。 #创建名为yolox的python版本为3.7的虚拟环境。 conda create -n yolox python=3.7 #通过下面的命令进入创建的虚拟环境。 conda activate yolox 3.然后按照官方(https://github.com/Megvii-BaseD.

weixin_41869644的博客 3004

基于YOLOX_Tiny的糙米品质分类模型训练与优化实录

YOLOX_Tiny是YOLOX系列中的轻量级版本,专为移动端和边缘设备设计。它采用了Anchor-Free的设计思想,结合了Decoupled Head和Task Alignment Learning(TAL)等创新技术,在保持较高精度的同时大幅降低了计算复杂度。轻量化设计:相比标准YOLOX模型,参数量减少了约70%,更适合资源受限的环境。高效检测:在保持较高精度的同时,推理速度显著提升,适合实时应用场景。易于部署:模型结构简洁,便于在各种平台上部署和优化。

Wuhan87827211m的博客 146

YOLO目标检测算法轻量化改进的过程记录

将目标检测算法部署至嵌入式设备(jetson nano)上的过程,并对YOLO目标检测算法进行轻量化改进(修改),主要是在YOLOv4-tiny、YOLOv5-s及YOLOX-tiny的基础上做出的总结及改进,主要是自己的实测效果及一些改进后的效果的记录,免得大家二次踩坑,并不一定适用于所有情况,并且容易受训练策略、数据集等各自各样的因素影响可能会有所区别,但深度学习嘛,本身就是个玄学问题,大家看看就好。......

hexiao260的博客 1万+

YOLOX——YOLO系列2021(中文翻译)

摘要 这篇论文中,我们总结一些YOLO系列方向的经验,提出了一个新的高性能的目标检测算法——YOLOX。我们

wuhongwuyan的博客 3656
上一篇: pytorch安装
下一篇: 你不知道的stringstream的用法
刀么克瑟拉莫
博客等级 码龄14年 68粉丝 268原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刀么克瑟拉莫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值