基础训练

This commit is contained in:
2025-09-26 09:55:46 +08:00
commit b0b7e44c8e
6 changed files with 116 additions and 0 deletions

0
REAMDE.md Normal file
View File

15
data.yaml Normal file
View File

@ -0,0 +1,15 @@
names:
0: Abdomen
1: Hips
2: Chest
3: vulva
4: back
5: penis
6: Horror
path: D:\Train\data\images
test:
- test
train:
- train
val:
- val

21
path.py Normal file
View File

@ -0,0 +1,21 @@
from pathlib import Path
import yaml
def update_data_yml_path():
root_dir = Path(__file__).parent.absolute()
images_dir = root_dir / "data" / "images"
data_yml_path = root_dir / "data.yaml"
with open(data_yml_path, "r", encoding="utf-8") as f:
yaml_data = yaml.safe_load(f)
if yaml_data is None:
yaml_data = {}
yaml_data["path"] = str(images_dir.absolute())
with open(data_yml_path, "w", encoding="utf-8") as f:
yaml.safe_dump(
yaml_data,
f,
allow_unicode=True,
default_flow_style=False
)

30
train.py Normal file
View File

@ -0,0 +1,30 @@
import warnings
from path import update_data_yml_path
warnings.filterwarnings('ignore')
from ultralytics import YOLO
if __name__ == '__main__':
# 加载并设置配置文件数据集绝对路径
update_data_yml_path()
# 加载模型配置文件
model = YOLO(model=r'yolo11.yml')
# 加载预训练权重
model.load(r'yolo11n.pt')
model.train(
data=r'data.yaml',
imgsz=640,
epochs=200,
batch=16,
workers=4,
close_mosaic=30,
device='0',
optimizer='SGD',
resume=False,
project='runs/train',
name='result',
single_cls=False,
cache=False
)

50
yolo11.yml Normal file
View File

@ -0,0 +1,50 @@
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# Ultralytics YOLO11 object detection model with P3/8 - P5/32 outputs
# Model docs: https://docs.ultralytics.com/models/yolo11
# Task docs: https://docs.ultralytics.com/tasks/detect
# Parameters
nc: 80 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolo11n.yaml' will call yolo11.yaml with scale 'n'
# [depth, width, max_channels]
n: [0.50, 0.25, 1024] # summary: 181 layers, 2624080 parameters, 2624064 gradients, 6.6 GFLOPs
s: [0.50, 0.50, 1024] # summary: 181 layers, 9458752 parameters, 9458736 gradients, 21.7 GFLOPs
m: [0.50, 1.00, 512] # summary: 231 layers, 20114688 parameters, 20114672 gradients, 68.5 GFLOPs
l: [1.00, 1.00, 512] # summary: 357 layers, 25372160 parameters, 25372144 gradients, 87.6 GFLOPs
x: [1.00, 1.50, 512] # summary: 357 layers, 56966176 parameters, 56966160 gradients, 196.0 GFLOPs
# YOLO11n backbone
backbone:
# [from, repeats, module, args]
- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2
- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4
- [-1, 2, C3k2, [256, False, 0.25]]
- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8
- [-1, 2, C3k2, [512, False, 0.25]]
- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16
- [-1, 2, C3k2, [512, True]]
- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32
- [-1, 2, C3k2, [1024, True]]
- [-1, 1, SPPF, [1024, 5]] # 9
- [-1, 2, C2PSA, [1024]] # 10
# YOLO11n head
head:
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
- [[-1, 6], 1, Concat, [1]] # cat backbone P4
- [-1, 2, C3k2, [512, False]] # 13
- [-1, 1, nn.Upsample, [None, 2, "nearest"]]
- [[-1, 4], 1, Concat, [1]] # cat backbone P3
- [-1, 2, C3k2, [256, False]] # 16 (P3/8-small)
- [-1, 1, Conv, [256, 3, 2]]
- [[-1, 13], 1, Concat, [1]] # cat head P4
- [-1, 2, C3k2, [512, False]] # 19 (P4/16-medium)
- [-1, 1, Conv, [512, 3, 2]]
- [[-1, 10], 1, Concat, [1]] # cat head P5
- [-1, 2, C3k2, [1024, True]] # 22 (P5/32-large)
- [[16, 19, 22], 1, Detect, [nc]] # Detect(P3, P4, P5)

BIN
yolo11n.pt Normal file

Binary file not shown.