基础训练
This commit is contained in:
15
data.yaml
Normal file
15
data.yaml
Normal 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
21
path.py
Normal 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
30
train.py
Normal 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
50
yolo11.yml
Normal 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
BIN
yolo11n.pt
Normal file
Binary file not shown.
Reference in New Issue
Block a user