数据集放在 datasets/coco_minitrain_10k
数据集目录结构如下:
datasets/
└── coco_mintrain_10k/
├── annotations/
│ ├── instances_train2017.json
│ ├── instances_val2017.json
│ ├── ... (其他标注文件)
├── train2017/
│ ├── 000000000001.jpg
│ ├── ... (其他训练图像)
├── val2017/
│ ├── 000000000001.jpg
│ ├── ... (其他验证图像)
└── test2017/
├── 000000000001.jpg
├── ... (其他测试图像)
conda creaet -n yolo11_py310 python=3.10
conda activate yolo11_py310
pip install -U -r train/requirements.txt
先下载预训练权重:
bash 0_download_wgts.sh
执行预测测试:
bash 1_run_predict_yolo11.sh
预测结果保存在 runs
文件夹下,效果如下:
已经准备好一键训练肩膀,直接执行训练脚本:
bash 2_run_train_yolo11.sh
其中其作用的代码很简单,就在 train/train_yolo11.py
中,如下:
# Load a model
model = YOLO(curr_path + "/wgts/yolo11n.pt")
# Train the model
train_results = model.train(
data= curr_path + "/cfg/coco128.yaml", # path to dataset YAML
epochs=100, # number of training epochs
imgsz=640, # training image size
device="0", # device to run on, i.e. device=0 or device=0,1,2,3 or device=cpu
)
# Evaluate model performance on the validation set
metrics = model.val()
主要就是配置一下训练参数,如数据集路径、训练轮数、显卡ID、图片大小等,然后执行训练即可
训练完成后,训练日志会在 runs/train
文件夹下,比如训练中 val 预测图片如下:
这样就完成了算法训练
使用 TensorRT 进行算法部署
直接执行一键导出ONNX脚本:
bash 3_run_export_onnx.sh
在脚本中已经对ONNX做了sim的简化
生成的ONNX以及_simONNX模型保存在wgts
文件夹下
直接去NVIDIA的官网下载(https://developer.nvidia.com/tensorrt/download)对应版本的tensorrt TAR包,解压基本步骤如下:
tar zxvf TensorRT-xxx-.tar.gz
# 软链trtexec
sudo ln -s /path/to/TensorRT/bin/trtexec /usr/local/bin
# 验证一下
trtexec --help
# 安装trt的python接口
cd python
pip install tensorrt-xxx.whl
直接执行一键生成trt模型引擎的脚本:
bash 4_build_trt_engine.sh
正常会在wgts
路径下生成yolo11n.engine,并有类似如下的日志:
[10/02/2024-21:28:48] [V] === Explanations of the performance metrics ===
[10/02/2024-21:28:48] [V] Total Host Walltime: the host walltime from when the first query (after warmups) is enqueued to when the last query is completed.
[10/02/2024-21:28:48] [V] GPU Compute Time: the GPU latency to execute the kernels for a query.
[10/02/2024-21:28:48] [V] Total GPU Compute Time: the summation of the GPU Compute Time of all the queries. If this is significantly shorter than Total Host Walltime, the GPU may be under-utilized because of host-side overheads or data transfers.
[10/02/2024-21:28:48] [V] Throughput: the observed throughput computed by dividing the number of queries by the Total Host Walltime. If this is significantly lower than the reciprocal of GPU Compute Time, the GPU may be under-utilized because of host-side overheads or data transfers.
[10/02/2024-21:28:48] [V] Enqueue Time: the host latency to enqueue a query. If this is longer than GPU Compute Time, the GPU may be under-utilized.
[10/02/2024-21:28:48] [V] H2D Latency: the latency for host-to-device data transfers for input tensors of a single query.
[10/02/2024-21:28:48] [V] D2H Latency: the latency for device-to-host data transfers for output tensors of a single query.
[10/02/2024-21:28:48] [V] Latency: the summation of H2D Latency, GPU Compute Time, and D2H Latency. This is the latency to infer a single query.
[10/02/2024-21:28:48] [I]
&&&& PASSED TensorRT.trtexec [TensorRT v100500] [b18] # trtexec --onnx=../wgts/yolo11n_sim.onnx --saveEngine=../wgts/yolo11n.engine --fp16 --verbose
直接执行一键推理脚本:
bash 5_infer_trt.sh
实际的trt推理脚本在 deploy/infer_trt.py
推理成功会有如下日志:
------ trt infer success! ------
推理结果保存在 deploy/output.jpg
如下:
好文章,需要你的鼓励
CarMax 作为美国最大的二手车零售商,年收入超过 265 亿美元。在 Shamim Mohammad 的领导下,公司成功实现了数字化转型,成为汽车行业的领先者。通过建立强大的技术基础、优化数据策略、应用人工智能技术,以及采用产品运营模式,CarMax 正在重塑汽车零售的未来。Mohammad 的前瞻性领导力和对创新的不懈追求,使 CarMax 在数字化时代保持竞争优势。
数据中心对我们的数字生活至关重要,但也给环境带来负担。为应对生态挑战,数据中心正向可持续、可再生能源、高效技术和可回收材料转型。这一转变不仅符合日益严格的环保法规,还能为企业带来竞争优势。从"白色空间"到"绿色建筑"的转型,将提高运营效率,降低成本,减少碳排放,为行业树立可持续发展的典范。
Nvidia最近改变了GPU的定义方式,将单个芯片die视为一个GPU,而非之前的整个模块。这一变化可能导致Nvidia AI Enterprise许可证费用翻倍。新的HGX B300 NVL16系统现在被视为拥有16个GPU,而非8个,这可能使年度订阅费用从36,000美元增至72,000美元。Nvidia表示,这一改变源于技术原因,但也可能是为了增加软件订阅收入。
一项新研究表明,OpenAI 可能在未获授权的情况下,使用 O'Reilly 出版社的付费图书来训练其先进的 AI 模型。研究发现,与早期模型相比,OpenAI 的 GPT-4o 模型对 O'Reilly 付费内容表现出更强的识别能力。这一发现引发了对 AI 训练数据来源和版权问题的讨论,同时也凸显了 AI 公司在寻求高质量训练数据方面面临的挑战。