【YOLO V5】目标检测 WSL2 AutoDL VScode SSH

【YOLO V5】目标检测 WSL2 AutoDL VScode SSH

  • 前言
  • 整体思路
    • 理解向
    • YOLO 目标检测完整流程
  • 环境配置
    • Anaconda
  • 获取 YOLO 代码与预训练模型
    • 下载 YOLOv5 代码和预训练模型
    • 配置 YOLOV5 工程环境
      • 解压 YOLOv5 源代码 并 添加预训练模型
      • 调整依赖版本
      • 选择对应的 Python 解释器
  • 数据集准备
    • 下载 COCO 动物数据集
    • 存放数据集
    • 执行 Python 脚本,转换标签格式
    • 正确的数据集格式
  • 训练 YOLO 模型
    • 参数配置
    • 路径管理注意事项
    • 本地训练
    • AutoDL 服务器训练
      • JupyterLab 连接
      • VScode SSH 远程连接
    • 训练结果
  • YOLO 推理

前言

对于初学者来说,学习YOLO和实现目标检测时,其实不需要了解底层原理,比如CNN神经网络。虽然这些知识有助于深入理解,但如果只是想快速上手YOLO,不必从这些复杂的原理开始。本篇内容正是基于这个思路,重点讲解如何快速上手YOLO,如何在服务器上训练自己的模型,并实现目标检测。

本文以 YOLOv5 在 COCO 数据集上的训练为例,阐述 YOLOv5 目标检测任务的完整实现流程。

我的环境:
WSL2 Ubuntu 20.04 YOLOv5 PyTorch 1.7.0 VSCode SSH连接autoDL服务器

参考资料:
【干货】两小时带你训练和使用yolov5,yolov5详细教学,yolov5环境配置,2024年
【手把手带你实战YOLOv5-拓展篇】使用AutoDL服务器进行模型训练
【手把手带你实战YOLOv5-拓展篇】Vscode基本使用与AutoDL服务器连接
【基于Ubuntu下Yolov5的目标识别】保姆级教程 | 虚拟机安装 - Ubuntu安装 - 环境配置(Anaconda/Pytorch/Vscode/Yolov5) |全过程图文by.Akaxi
【Anaconda】Linux系统下Anaconda详细安装过程

整体思路

理解向

我们可以将 YOLO 理解为一个 学生
训练集 = 有标准答案的习题集(帮助学生根据答案总结规律,提升能力)
验证集 = 单元检测卷(让学生训练完后做题并根据表现进行这一轮训练的评分)
测试集 = 期末考试(学期结束时,测试学生的最终学习的成果)

训练YOLO模型的过程: 就是给这个学生提供一套标准答案的习题集(有标注的训练集),让学生据答案总结规律并逐渐提升。随着训练的进行,模型(学生)会不断变强,最终变成一个更“厉害”的学生——这就是训练后的 YOLO 模型(也叫权重)。
验证YOLO模型的过程: 当学生完成一套有标准答案的习题集后,能力有所提升,成为更“厉害”的学生。接着,我们给更“厉害”的学生一套单元检测卷,检查他在这一轮学习后的掌握情况。
测试YOLO模型的过程: 经过多轮习题集的学习和单元检测卷的验证后,我们让最优秀的学生(最优权重 best weights):参加期末考试,以此测试他在所有学习轮次后的最终能力。

举个栗子:
如果我们希望 YOLO 识别水果,就需要提供大量带标签的水果图片(相当于给学生提供带标准答案的习题)。YOLO 通过学习这些图片,掌握规律,最终训练出一个能够识别水果的模型(擅长检测水果的“学生”)。
在训练过程中,YOLO 每训练一轮就会“升级”一次,就像学生每做完一轮习题,能力都会有所提升。每次升级后,我们需要验证它的表现,于是给它一套没有标准答案的题目(验证集),再对比标准答案,评估它这一轮的学习效果。
经过多轮训练和验证,最终会使用测试集进行“终极考核”,类似于学生的期末考试。测试集能衡量模型的最终表现,确保它在实际应用中足够可靠。
训练完成后,我们会选择表现最好的模型(最佳权重)用于后续的水果的目标检测任务,就像学生经过专项训练后,能在相关的专项习题中有更好的表现。

YOLO 目标检测完整流程

环境配置–获取YOLO代码与预训练模型–数据集准备–训练YOLO模型–评估与测试–模型部署与应用

  1. 环境配置 – 安装 Anaconda,并配置 PyTorch 与 CUDA(如果使用本地 GPU 训练)
  2. 获取 YOLO 代码与预训练模型 – 下载 YOLOv5 官方代码库,并准备预训练的权重文件
  3. 数据集准备 – 下载并转换数据集,使其符合 YOLO 格式;若使用自定义数据集,则需收集图片并进行标注。
  4. 训练 YOLO 模型 – 在本地或服务器上进行模型训练,调整超参数并优化权重,提高检测效果。
  5. 模型评估与测试 – 选择训练过程中表现最优的模型,并在测试集上进行评估
  6. 模型部署与应用 – 将训练好的 YOLO 模型部署到实际场景

环境配置

Anaconda

该部分内容可以参考:【Anaconda】Linux系统下Anaconda详细安装过程

安装Anaconda:

在 Windows 下,前往 Anaconda清华镜像站 下载适合的 Anaconda 安装包。本次示例下载的是 Anaconda3-2021.05-Linux-x86_64.sh
在这里插入图片描述

下载完成后,将安装包复制到 WSL,并进入其所在目录执行安装:

cd ~
bash Anaconda3-2021.05-Linux-x86_64.sh

环境变量配置:
安装完成后,需要将 Anaconda 添加到环境变量,使其能够在终端中直接使用

  1. 打开 .bashrc 文件:
    nano ~/.bashrc
    
  2. 在文件末尾添加 Anaconda 路径(请替换 XXX 为你的实际安装路径):
    export PATH="XXX/anaconda3/bin:$PATH"
    
  3. 使环境变量生效:
    source ~/.bashrc
    

最后,关闭并重新打开终端,如果命令行前面显示 (base),就说明 Anaconda 已成功配置并生效

创建虚拟环境:

  1. 创建虚拟环境:(指定 Python 版本 3.8,兼容性较好)

    conda create yolo_v5 python=3.8
    
  2. 激活虚拟环境:

    conda activate yolo_v5
    
  3. 更换 pip 源:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  1. 更换 conda 源
sudo nano ~/.condarc

在打开的文件中,复制并粘贴以下内容,然后保存:

channels:- defaults
show_channel_urls: true
default_channels:- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmsys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudbioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudmenpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudpytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloudsimpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

后续所有操作均需在(yolo_v5)环境中进行

获取 YOLO 代码与预训练模型

下载 YOLOv5 代码和预训练模型

下载 YOLOv5 源代码

  • 访问 YOLOv5 官方仓库
  • Tags 选项中查看所有历史版本,并选择 v6.0(该版本兼容性较好,较新版本在 Jetson Nano 部署时可能存在依赖兼容性问题)
  • 在 YOLOv5-6.0 中点击 Source code (zip) 下载 YOLOv5 6.0 版本的源代码压缩包

YOLOv5 版本选择

下载预训练模型

  • 在 YOLOv5-6.0 页面中,可以看到官方提供的多种预训练模型,并附带性能参数供选择
  • 根据需求选择适合的模型,这里推荐 YOLOv5s(轻量化,速度快,适用于大多数场景)。
  • 点击 yolov5s.pt 下载 YOLOv5s 预训练权重文件。

预训练模型的性能参数
YOLOv5 预训练模型

yolov5s.pt 预训练的权重文件
下载 yolov5s.pt

配置 YOLOV5 工程环境

解压 YOLOv5 源代码 并 添加预训练模型

  1. 将下载的 yolov5-6.0.zip 复制到 WSL 的 YOLO 项目目录中 解压文件

    tar -xvf yolov5-6.0.zip
    
  2. 进入项目目录,打开该文件夹

    cd yolov5-6.0
    code .
    
  3. yolov5s.pt 预训练权重文件复制到 weights 目录(如果没有该目录,则手动创建):

    mkdir -p weights  # 创建 weights 目录(若不存在)
    mv yolov5s.pt weights/  # 移动权重文件
    

调整依赖版本

打开 requirements.txt,将所有 >= 替换为 =,确保依赖版本固定,避免因版本过新导致兼容性问题

在这里插入图片描述

注释 PyTorch 相关依赖:由于训练将在服务器上进行,本地无需安装 PyTorch,因此需在 requirements.txt 中注释掉 torch 和 torchvision。但请记住 PyTorch 版本要求,确保在服务器上选择符合要求的 PyTorch 版本

关于 PyTorch 的安装及 requirements.txt 依赖安装过程中可能遇到的报错,可以参考 【干货】两小时带你训练和使用 YOLOv5,YOLOv5 详细教学,YOLOv5 环境配置(2024) 视频的 21 分钟 部分

选择对应的 Python 解释器

在 VSCode 中,按下 Shift + Ctrl + P 调出命令面板,在搜索栏输入 “Python: Select Interpreter”,然后选择 yolo_v5 虚拟环境下的 Python 3.8 解释器,如下图所示

在这里插入图片描述

数据集准备

本次示例使用 COCO 动物数据集,但由于 COCO 数据集的标签格式与 YOLO 格式不兼容,因此需要进行格式转换。

下载 COCO 动物数据集

Files 目录中,找到 dataset.tar.gz 文件并下载
在这里插入图片描述

存放数据集

  • 下载完成后,将 dataset.tar.gz 解压,并将其复制到 YOLOv5-6.0 项目目录下的 data/dataset 文件夹。
  • 此外,还需将数据集复制一份至 data/data_org 目录,该目录用于格式转换。
  • 由于 COCO 数据集的标签格式不同于 YOLO(COCO 仅提供一个标签文件,而 YOLO 需要为每张图片生成一个对应的 .txt 标签文件),因此需编写脚本进行转换。

执行 Python 脚本,转换标签格式

import os
import cv2 as cv
import json# 定义项目根目录
ROOT = os.path.dirname(os.path.abspath(__file__))  # 获取当前脚本所在目录# 使用 Path 进行路径拼接
img_folder = ROOT / 'data/dataset/val/images'
label_path = ROOT / 'data/data_org/val/_annotations.coco.json'# test 测试集图片文件名列表
img_path_lst = os.listdir(img_folder)# 为每一张图片创建一个空白的 .txt 标签
for img_name in img_path_lst:with open(os.path.join(img_folder.replace("images","labels"),img_name.replace(".jpg",".txt")),'w') as f:# 读取文件
with open(label_path, 'r') as f:content = json.load(f)
pass# 创建一个id到图片名的映射,以字典形式存储
dict_id2img = dict()
for img_info in content['images']:dict_id2img[img_info['id']] = img_info['file_name']
pass# 开始读取标注信息,处理后写入txt文件
for label_info in content['annotations']:img_name = dict_id2img[label_info['image_id']]class_name = label_info['category_id']x_center = (label_info['bbox'][0] + label_info['bbox'][2]) / 2 / 640y_center = (label_info['bbox'][1] + label_info['bbox'][3]) / 2 / 640w = label_info['bbox'][2] / 640h = label_info['bbox'][3] / 640with open(os.path.join(img_folder.replace("images", "labels"), img_name.replace(".jpg", ".txt")), 'a') as f:f.write("{} {} {} {} {}\n".format(class_name, x_center, y_center, w, h))

注意事项

  • 单次转换单个数据集
    该脚本 每次只能转换一个数据集(训练集 train、验证集 val 或测试集 test)。
    如需转换多个数据集,请分别修改 img_folderlabel_path 的路径,并 单独运行 脚本。

  • 数据转换完成后,数据集应符合 YOLO 格式

    转换后,dataset 目录下应包含:

    • images/ 文件夹(存放图像文件)。
    • labels/ 文件夹(存放与图像一一对应的 .txt 标签文件)。
  • 确保 COCO 格式 JSON 文件路径正确

    • label_path 需要正确指向 COCO 数据集的 JSON 标签文件,否则转换时会找不到数据,导致错误。
    • 建议 将 COCO 的 JSON 标签文件 单独存放在 labels/ 目录,确保 images/ 目录下 仅存放图片,避免混淆和潜在错误。

正确的数据集格式

your_project/
│── yolov5-6.0/             # YOLOv5 项目主目录
│   ├── data/               # 数据集相关文件
│   │   ├── dataset/        # 存放实际的图片和标签
│   │   │   ├── train/      # 训练集
│   │   │   │   ├── images/ # 训练集图片
│   │   │   │   │   ├── img_1.jpg
│   │   │   │   │   ├── img_2.jpg
│   │   │   │   │   ├── ...
│   │   │   │   ├── labels/ # 训练集标签(YOLO 格式,一一对应)
│   │   │   │   │   ├── img_1.txt
│   │   │   │   │   ├── img_2.txt
│   │   │   │   │   ├── ...
│   │   │   ├── val/        # 验证集
│   │   │   │   ├── images/
│   │   │   │   ├── labels/
│   │   │   ├── test/       # 测试集
│   │   │   │   ├── images/
│   │   │   │   ├── labels/
│   │   ├── data_org/       # 存放原始数据(COCO 格式)
│   │   │   ├── train/ 
│   │   │   │   ├── images/ 
│   │   │   │   ├── labels/   # 存放单个 COCO 的 JSON 文件
│   │   │   │   │   ├── _annotations.coco.json  
│   │   │   ├── val/ 
│   │   │   │   ├── images/  
│   │   │   │   ├── labels/  
│   │   │   │   │   ├── _annotations.coco.json  
│   │   │   ├── test/  
│   │   │   │   ├── images/  
│   │   │   │   ├── labels/  
│   │   │   │   │   ├── _annotations.coco.json  

训练 YOLO 模型

参数配置

YOLO的训练主要通过 train.py 函数进行,因此我们只需关注这个文件。以下是一些关键的传入参数,它们用于配置训练过程:

  1. weights (权重文件)
    这是预训练模型的文件,可以选择进行微调,使用官方模型(如 yolov5s),或者从零开始训练(不推荐)。

填写权重文件的路径时,ROOT 表示从项目根目录开始的相对路径。

  1. cfg (结构文件)
    该文件用于描述 YOLO 模型的架构和结构。根据所使用的模型选择对应的 YAML 配置文件。
    例如,若选择 yolov5s 模型,则应选择 yolov5s.yaml 配置文件。每个模型都有对应的 YAML 文件,其中定义了网络层、输入输出参数等结构信息。

  2. data (数据集文件)
    该文件定义了数据集(训练集、验证集、测试集)的路径、类别数量
    例如,以下文件包含了这些信息,用于告知模型如何加载和处理数据。

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../yolov5-6.0/data/dataset  # dataset root dir
train: train/images  # train images (relative to 'path') 118287 images
val: val/images  # train images (relative to 'path') 5000 images
test: test/images  # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794# Classes
nc: 11  # number of classes
names: ['animals', 'cat', 'chicken', 'cow', 'dog', 'fox', 'goat', 'horse', 'person', 'racoon', 'skunk'] # class names
  1. epochs (训练轮数)
    训练的轮次,轮数越高,模型训练得越充分,但训练时间也越长。YOLO 在训练到认为是最佳模型时会自动停止,因此不必担心过度训练。

  2. batchsize (批次大小)
    这是每次训练时投入的数据量,直接影响到 GPU 显存的使用。显存越大,可以设置更大的批次大小。
    PS:GPU显存的占用情况可以在训练过程中看到,每轮训练时会显示 GPU 显存的实时使用情况。如果使用租赁服务器,记得充分利用显卡的性能,以确保训练效率最大化。

  3. imgsz (图片尺寸)
    图像尺寸,通常默认设置为 640x640

  4. device (训练设备)
    指定用于训练的设备。如果使用 CPU,则填写 cpu;如果使用 GPU 训练,则填写指定 GPU 的编号(默认通常为 0)。如果使用多个 GPU,可以填写 0,1,...

路径管理注意事项

  • Python 中,建议使用 ROOT 变量表示项目的根目录,例如:
from pathlib import Path
import osFILE = Path(__file__).resolve()  # 获取当前脚本的绝对路径
ROOT = FILE.parents[0]  # 获取项目根目录(即当前文件所在目录的父目录)
if str(ROOT) not in sys.path:  # 如果 ROOT 目录不在 sys.path 中,将其添加到 sys.pathsys.path.append(str(ROOT))  # add ROOT to PATH
ROOT = Path(os.path.relpath(ROOT, Path.cwd()))  # 使用相对路径获取 ROOT 目录相对于当前工作目录的路径data_path = ROOT / 'data/dataset.yaml'  # 数据集路径
weights_path = ROOT / 'weights/yolov5s.pt'  # 预训练模型路径
  • YAML 文件中,使用 .. 表示回退上一级目录,例如:
train: ../yolov5-6.0/data/dataset/train/images
val: ../yolov5-6.0/data/dataset/val/images

在 YAML 文件中,使用 ../yolov5-6.0 来表示当前项目目录的上层文件夹。.. 表示回退到当前文件夹的上层文件夹,例如,若文件结构是 a/b/c,在 c 文件夹中,.. 就代表 a 文件夹。相对路径有时容易混淆,导致出错。如果无法区分清楚,使用绝对路径也是可行的,尽管修改时会更麻烦一些。

本地训练

1. 直接运行

python train.py

该命令会使用 train.py 中预设的默认参数进行训练

2. 运行时指定参数

python train.py --weights yolov5s.pt --epochs 100 --batch-size 16

这样可以 临时修改参数,不会影响 train.py 文件中的默认配置,方便灵活调整训练设置

AutoDL 服务器训练

该部分建议参考:
【手把手带你实战YOLOv5-拓展篇】使用AutoDL服务器进行模型训练
【手把手带你实战YOLOv5-拓展篇】Vscode基本使用与AutoDL服务器连接

首先,我们需要创建服务器实例:

进入 AutoDL AI算力云 的算力市场选择所需的GPU

然后选择适合YOLO环境的镜像版本。注意镜像要满足YOLO依赖的框架(PyTorch)、Python版本以及CUDA版本。
如果你不清楚具体版本要求,可以查看YOLO项目中的依赖说明(一般在requirements.txt中)
确认镜像选择无误后,点击下方“立即创建”按钮创建实例。

在这里插入图片描述
在这里插入图片描述

JupyterLab 连接

服务器创建完成后,直接点击控制台中的JupyterLab按钮进行连接:
在这里插入图片描述
进入JupyterLab后,上传你的YOLO项目文件。接下来,参照前文说明修改相关参数(如weights路径等),即可在服务器上快速开始训练。其他的训练操作步骤与本地训练流程一致。

VScode SSH 远程连接

该部分内容建议参考:【手把手带你实战YOLOv5-拓展篇】Vscode基本使用与AutoDL服务器连接 9分钟 后的内容

步骤如下:

  • 在VSCode中点击左下角打开远程资源管理器,点击+添加SSH连接:

  • 将生成的SSH配置文件保存到默认位置即可,无需额外修改:

  • 输入AutoDL中的登录指令与对应的密码进行连接

  • 连接成功后,即可在VSCode远程环境中操作

后续具体流程和本地训练以及 JupyterLab 方式一致。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

训练结果

每次训练会生成一个 runs/train 文件夹,其中的 exp 目录代表实验编号(即训练的轮次)。我们主要关注 runs/train/exp/weights 文件夹中的**权重文件**,该文件夹包含:

  • 最新的权重文件:通常是 last.pt,代表当前训练过程中的最新模型权重。
  • 最佳权重文件:通常是 best.pt,代表在训练过程中性能最好的模型

通常我们重点关注 best.pt 作为最优模型

此外,在训练完成后,runs/train/exp 目录下会生成基于 best.pt 模型运行验证集的结果(即 best.pt 在验证集上的目标检测表现)。同时,还会包含损失、精度、mAP 等评估指标,用于衡量和优化模型的性能。在初学阶段,可以将这些细节放在一边,专注于模型的最终表现。

YOLO 推理

在训练出合适的模型后,我们可以使用最优模型进行推理。YOLO 推理主要通过 detect.py 脚本实现,和训练过程类似,我们需要修改一些参数来配置推理。

参数配置

  1. weights (权重文件)
    选择训练好的模型进行推理。如果任务简单,也可以使用预训练模型(例如 yolov5s.pt)进行推理。

  2. source(输入数据源)
    指定推理的输入数据源,可以是图片集、URL或者使用摄像头作为输入源(0 表示使用摄像头)。

  3. imgsz (图片尺寸)
    设置输入图像的尺寸,默认通常为 640x640

  4. conf-thres (置信度阈值)
    用于过滤低置信度的检测框。默认设置为 0.25,意味着只有置信度高于 25% 的目标才会被保留。根据实际情况调整,如果阈值设置得过低,可能会出现很多错误的检测框。

  5. device (设备)
    指定推理时使用的设备。如果使用 CPU,则填写 cpu;如果使用 GPU,则填写指定 GPU 的编号(通常默认为 0)。如果使用多个 GPU,则可以指定多个设备(如 0,1)。

注意:只需修改 source 参数,即可指定推理本地图片、视频文件或摄像头输入。
推理完成后,检测结果(标注后的图片和视频)默认保存在 runs/detect/exp/ 目录下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/28459.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PMP项目管理—沟通管理篇—1.规划沟通管理

文章目录 基本信息步骤4W1HITTO输入工具与技术输出 沟通需求分析沟通技术沟通模型沟通噪声障碍的类型 沟通漏斗模型 沟通方法相关方参与度评估矩阵传递方式影响沟通效果沟通管理计划 基本信息 步骤 收集信息,加工信息确定项目沟通需求确定项目沟通的方法编制项目沟…

SCI期刊推荐 | 免版面费 | 计算机领域:信息系统、软件工程、自动化和控制

在学术研究领域,选择合适的SCI期刊对科研成果的传播与认可至关重要。了解SCI期刊的研究领域和方向是基础,确保投稿内容与期刊主题相符。同时,要关注期刊的影响因子和评估标准,选择具有较高影响力和学术认可度的期刊。阅读期刊的投…

EasyDSS视频推拉流系统:清理缓存文件时如何确保缓存读写不受影响?

视频推拉流EasyDSS视频直播点播平台可提供一站式的视频转码、点播、直播、视频推拉流、播放H.265视频等服务,搭配RTMP高清摄像头使用,可将无人机设备的实时流推送到平台上,实现无人机视频推流直播、巡检等应用。 有用户咨询,视频推…

探秘基带算法:从原理到5G时代的通信变革【四】Polar 编解码(二)

文章目录 2.3.3 极化编码巴氏参数与信道可靠性比特混合生成矩阵编码举例 2.3.4 极化译码最小单元译码串行抵消译码(SC译码)算法SCL译码算法 2.3.5 总结**Polar 码的优势****Polar 码的主要问题****Polar 码的应用前景** 2.3.6 **参考文档** 本博客为系列…

GCC RISCV 后端 -- cc1 入口

GCC编译工具链中的 gcc 可执行程序,实际上是个驱动程序(Driver),其根据输入的参数,然后调用其它不同的程序,对输入文件进行处理,包括编译、链接等。可以通过以下命令查看: gcc -v h…

用DeepSeek-R1-Distill-data-110k蒸馏中文数据集 微调Qwen2.5-7B-Instruct!

下载模型与数据 模型下载: huggingface: Qwen/Qwen2.5-7B-Instruct HF MirrorWe’re on a journey to advance and democratize artificial intelligence through open source and open science.https://hf-mirror.com/Qwen/Qwen2.5-7B-Instruct 魔搭&a…

基于编译器特性浅析C++程序性能优化

最近在恶补计算机基础知识,学到CSAPP第五章的内容,在这里总结并且展开一下C程序性能优化相关的内容。 衡量程序性能的方式 一般而言,程序的性能可以用CPE(Cycles Per Element)来衡量,其指的是处理每个元素…

K8s控制器Deployment详解

回顾 ReplicaSet 控制器,该控制器是用来维护集群中运行的 Pod 数量的,但是往往在实际操作的时候,我们反而不会去直接使用 RS,而是会使用更上层的控制器,比如说 Deployment。 Deployment 一个非常重要的功能就是实现了 Pod 的滚动…

大模型巅峰对决:DeepSeek vs GPT-4/Claude/PaLM-2 全面对比与核心差异揭秘

文章目录 一、架构设计深度解剖1.1 核心架构对比图谱1.2 动态MoE架构实现架构差异分析表 二、训练策略全面对比2.1 训练数据工程对比2.2 分布式训练代码对比DeepSeek混合并行实现GPT-4 Megatron实现对比 2.3 关键训练参数对比 三、性能表现多维评测3.1 基准测试全景对比3.2 推理…

【MySQL_02】安装(8.4.4LTS : Windows + Linux)

文章目录 一、版本说明二、官网下载三、Windows安装3.1 安装和配置3.2 四、Linux安装 历史文章点击👉:SQL 🐈‍⬛github:https://github.com/mysql 💻官网: https://www.mysql.com 🌏维基百科…

今天来介绍和讨论 AGI(通用人工智能)

首先介绍,AGI(通用人工智能)是什么? AGI(Artificial General Intelligence,通用人工智能)指的是能够像人类一样理解、学习、推理和解决广泛任务的人工智能系统。与目前的AI不同,AGI可…

自动化学习-使用git进行版本管理

目录 一、为什么要学习git 二、git是什么 三、git如何使用 1、git的下载安装和配置 2、git常用的命令 3、gitee远程仓库的使用 (1)注册 (2)创建仓库 (3)配置公钥(建立电脑和git…

探秘基带算法:从原理到5G时代的通信变革【十】基带算法应用与对比

文章目录 三、算法在现代通信系统中的应用3.1 5G 通信中的应用3.1.1 信道编码与调制解调3.1.2 大规模 MIMO 技术3.1.3 案例分析:5G 基站与终端实现 3.2 卫星通信中的应用3.2.1 抗干扰与纠错编码3.2.2 信号处理与调制解调3.2.3 案例分析:卫星通信系统实例…

从vue源码解析Vue.set()和this.$set()

前言 最近死磕了一段时间vue源码,想想觉得还是要输出点东西,我们先来从Vue提供的Vue.set()和this.$set()这两个api看看它内部是怎么实现的。 Vue.set()和this.$set()应用的场景 平时做项目的时候难免不会对 数组或者对象 进行这样的骚操作操作&#xff…

IO学习day3

一、思维导图 二、练习 1、使用文件IO读取图片 文件大小,文件偏移量,宽度,高度 2.向一个程序中输入文件名,判断指定目录下是否有这个文件,如果有这个文件, 将这个文件的属性信息输出。如果不存在输出不存在即可。 .…

MWC 2025|紫光展锐联手美格智能发布5G通信模组SRM812

在2025年世界移动通信大会(MWC 2025)期间,紫光展锐携手美格智能正式推出了基于紫光展锐V620平台的第二代5G Sub6G R16模组SRM812,以超高性价比方案,全面赋能合作伙伴,加速5G规模化应用在各垂直领域的全面落…

场景题:10亿QQ用户,如何统计在线人数?

现在卷的环境下,面试除了八股文算法项目外,场景题也是问的越来越多了。一方面是就业市场竞争者较多所带来的必然结果;另一方面是公司对于应聘者的技术要求也越来越高了。 今天继续介绍Java面试常见的场景题:在线人数统计 现在用户…

Markdown HTML 图像语法

插入图片 Markdown ![图片描述](图片链接)一般来说,直接复制粘贴过来就行了,部分网页/应用可以拖拽,没人会真敲图片的链接吧…… 示例图片: ![Creeper?](https://i-blog.csdnimg.cn/direct/f5031c8c4f15421c9882d7eb23540b8…

3D建模--犀牛Rhino for Mac

介绍 Rhino 8是一款功能强大的三维构建软件,它可以帮助用户创建各种类型的3D模型,包括产品设计、建筑设计、工业设计计划等。具有直观的界面和丰富的工具库,让你可以快速轻松地进行建模、编辑、分析和漂染。支持多种文件格式的导入和导出&am…

Axure原型模板与元件库APP交互设计素材(附资料)

为了高效地进行APP和小程序的设计与开发,原型设计工具Axure凭借其强大的功能和灵活性,成为了众多产品经理和设计师的首选。本文将详细介绍Axure原型模板APP常用界面组件元件库、交互设计素材,以及多套涵盖电商、社区服务、娱乐休闲、农业农村…