1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 目标检测 YOLOv5 - 模型的样子

目标检测 YOLOv5 - 模型的样子

时间:2024-02-06 00:09:32

相关推荐

目标检测 YOLOv5 - 模型的样子

目标检测 YOLOv5 - 模型的样子

flyfish

文章目录

目标检测 YOLOv5 - 模型的样子开始加载模型文件模型的层模型的属性模块的名称以及模块本身模型的权重模型权重的名字和权重完整的model完整模型图片展示

版本: YOLOv5:v5

以yolov5s.pt为例查看模型的样子

开始加载模型文件

yolov5s.pt

def attempt_load(weights, map_location=None):

模型内容如下

ckpt: {'epoch': -1,'best_fitness': array([0.37287]),'training_results': None,'model': Model((model): Sequential((0): Focus((conv): Conv((conv): Conv2d(12, 32, kernel_size = (3, 3), stride = (1, 1), padding = (1, 1), bias = False)(bn): BatchNorm2d(32, eps = 0.001, momentum = 0.03, affine = True, track_running_stats = True)(act): SiLU()))......(24): Detect((m): ModuleList((0): Conv2d(128, 255, kernel_size = (1, 1), stride = (1, 1))(1): Conv2d(256, 255, kernel_size = (1, 1), stride = (1, 1))(2): Conv2d(512, 255, kernel_size = (1, 1), stride = (1, 1)))))),'optimizer': None,'wandb_id': None}

模型的层

具体哪一层可以通过model.model[下标]的形式获取。负数表示倒着获取

倒数第一层

model.model[-1]

Detect((m): ModuleList((0): Conv2d(128, 255, kernel_size=(1, 1), stride=(1, 1))(1): Conv2d(256, 255, kernel_size=(1, 1), stride=(1, 1))(2): Conv2d(512, 255, kernel_size=(1, 1), stride=(1, 1))))

倒数第二层

model.model[-2]

C3((cv1): Conv((conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU(inplace=True))(cv2): Conv((conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU(inplace=True))(cv3): Conv((conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1))(act): SiLU(inplace=True))(m): Sequential((0): Bottleneck((cv1): Conv((conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU(inplace=True))(cv2): Conv((conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU(inplace=True)))))

模型的属性

for name,value in vars(model).items():print('%s=%s'%(name,value))

例如获取类别名称model.names

可以获取的属性包括以下内容

training = False_parameters = OrderedDict()_buffers = OrderedDict()_non_persistent_buffers_set = set()_backward_hooks = OrderedDict()_forward_hooks = OrderedDict()_forward_pre_hooks = OrderedDict()_state_dict_hooks = OrderedDict()_load_state_dict_pre_hooks = OrderedDict()_modules = OrderedDict([('model', Sequential((0): Focus((conv): Conv((conv): Conv2d(12, 32, kernel_size = (3, 3), stride = (1, 1), padding = (1, 1))(act): SiLU(inplace = True)))......(24): Detect((m): ModuleList((0): Conv2d(128, 255, kernel_size = (1, 1), stride = (1, 1))(1): Conv2d(256, 255, kernel_size = (1, 1), stride = (1, 1))(2): Conv2d(512, 255, kernel_size = (1, 1), stride = (1, 1))))))])yaml = {'nc': 80,'depth_multiple': 0.33,'width_multiple': 0.5,'anchors': [[10, 13, 16, 30, 33, 23],[30, 61, 62, 45, 59, 119],[116, 90, 156, 198, 373, 326]],'backbone': [[-1, 1, 'Focus', [64, 3]],[-1, 1, 'Conv', [128, 3, 2]],[-1, 3, 'C3', [128]],[-1, 1, 'Conv', [256, 3, 2]],[-1, 9, 'C3', [256]],[-1, 1, 'Conv', [512, 3, 2]],[-1, 9, 'C3', [512]],[-1, 1, 'Conv', [1024, 3, 2]],[-1, 1, 'SPP', [1024, [5, 9, 13]]],[-1, 3, 'C3', [1024, False]]],'head': [[-1, 1, 'Conv', [512, 1, 1]],[-1, 1, 'nn.Upsample', ['None', 2, 'nearest']],[[-1, 6], 1, 'Concat', [1]],[-1, 3, 'C3', [512, False]],[-1, 1, 'Conv', [256, 1, 1]],[-1, 1, 'nn.Upsample', ['None', 2, 'nearest']],[[-1, 4], 1, 'Concat', [1]],[-1, 3, 'C3', [256, False]],[-1, 1, 'Conv', [256, 3, 2]],[[-1, 14], 1, 'Concat', [1]],[-1, 3, 'C3', [512, False]],[-1, 1, 'Conv', [512, 3, 2]],[[-1, 10], 1, 'Concat', [1]],[-1, 3, 'C3', [1024, False]],[[17, 20, 23], 1, 'Detect', ['nc', 'anchors']]],'ch': 3}save = [4, 6, 10, 14, 17, 20, 23]names = ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light', 'fire hydrant', 'stop sign','parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella','handbag', 'tie', 'suitcase', 'frisbee', 'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard','surfboard', 'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple', 'sandwich', 'orange','broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', 'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear', 'hair drier', 'toothbrush']stride = tensor([8., 16., 32.])nc = 80hyp = {'lr0': 0.01,'lrf': 0.2,'momentum': 0.937,'weight_decay': 0.0005,'warmup_epochs': 3.0,'warmup_momentum': 0.8,'warmup_bias_lr': 0.1,'box': 0.05,'cls': 0.3,'cls_pw': 1.0,'obj': 0.7,'obj_pw': 1.0,'iou_t': 0.2,'anchor_t': 4.0,'fl_gamma': 0.0,'hsv_h': 0.015,'hsv_s': 0.7,'hsv_v': 0.4,'degrees': 0.0,'translate': 0.1,'scale': 0.9,'shear': 0.0,'perspective': 0.0,'flipud': 0.0,'fliplr': 0.5,'mosaic': 1.0,'mixup': 0.01}gr = 1.0class_weights = tensor([1.20752e-02, ......, 2.12184e+00, 6.56878e-01, 1.56888e+01, 1.59711e+00], dtype = torch.float64)_is_full_backward_hook = None

模块的名称以及模块本身

代码

for name, module in model.named_modules():print(name)

这里只输出名字

modelmodel.0model.0.convmodel.0.conv.convmodel.0.conv.actmodel.1model.1.convmodel.1.act......model.22model.23model.23.cv1model.23.cv1.convmodel.23.cv1.actmodel.23.cv2model.23.cv2.convmodel.23.cv2.actmodel.23.cv3model.23.cv3.convmodel.23.cv3.actmodel.23.mmodel.23.m.0model.23.m.0.cv1model.23.m.0.cv1.convmodel.23.m.0.cv1.actmodel.23.m.0.cv2model.23.m.0.cv2.convmodel.23.m.0.cv2.actmodel.24model.24.mmodel.24.m.0model.24.m.1model.24.m.2

模型的权重

代码

list(model.parameters())[0]

内容

Parameter containing:tensor([[[[-2.73007e-01, -1.44108e+00, -1.18709e+00],[-3.13122e-01, -9.47540e-01, -7.23963e-01],[ 4.31564e-01, 2.05478e+00, 1.50800e+00]],......[[ 8.07673e-01, 1.51624e+00, 2.86977e-01],[-1.81044e+00, -1.48112e+00, -6.51210e-01],[-5.19720e-01, -1.99577e-01, 1.39392e-01]]]])

模型权重的名字和权重

代码

list(model.named_parameters())

model.0.conv.conv.weight是名字

('model.0.conv.conv.weight', Parameter containing:tensor([[[[-2.73007e-01, -1.44108e+00, -1.18709e+00],[-3.13122e-01, -9.47540e-01, -7.23963e-01],[ 4.31564e-01, 2.05478e+00, 1.50800e+00]],......[[ 8.07673e-01, 1.51624e+00, 2.86977e-01],[-1.81044e+00, -1.48112e+00, -6.51210e-01],[-5.19720e-01, -1.99577e-01, 1.39392e-01]]]]))

完整的model

Model((model): Sequential((0): Focus((conv): Conv((conv): Conv2d(12, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))(1): Conv((conv): Conv2d(32, 64, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))(act): SiLU())(2): C3((cv1): Conv((conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(64, 32, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv3): Conv((conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(m): Sequential((0): Bottleneck((cv1): Conv((conv): Conv2d(32, 32, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(32, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))))(3): Conv((conv): Conv2d(64, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))(act): SiLU())(4): C3((cv1): Conv((conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(128, 64, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv3): Conv((conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(m): Sequential((0): Bottleneck((cv1): Conv((conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))(1): Bottleneck((cv1): Conv((conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))(2): Bottleneck((cv1): Conv((conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))))(5): Conv((conv): Conv2d(128, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))(act): SiLU())(6): C3((cv1): Conv((conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv3): Conv((conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(m): Sequential((0): Bottleneck((cv1): Conv((conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))(1): Bottleneck((cv1): Conv((conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))(2): Bottleneck((cv1): Conv((conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))))(7): Conv((conv): Conv2d(256, 512, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))(act): SiLU())(8): SPP((cv1): Conv((conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(1024, 512, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(m): ModuleList((0): MaxPool2d(kernel_size=5, stride=1, padding=2, dilation=1, ceil_mode=False)(1): MaxPool2d(kernel_size=9, stride=1, padding=4, dilation=1, ceil_mode=False)(2): MaxPool2d(kernel_size=13, stride=1, padding=6, dilation=1, ceil_mode=False)))(9): C3((cv1): Conv((conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv3): Conv((conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(m): Sequential((0): Bottleneck((cv1): Conv((conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))))(10): Conv((conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(11): Upsample(scale_factor=2.0, mode=nearest)(12): Concat()(13): C3((cv1): Conv((conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(512, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv3): Conv((conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(m): Sequential((0): Bottleneck((cv1): Conv((conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))))(14): Conv((conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(15): Upsample(scale_factor=2.0, mode=nearest)(16): Concat()(17): C3((cv1): Conv((conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(256, 64, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv3): Conv((conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(m): Sequential((0): Bottleneck((cv1): Conv((conv): Conv2d(64, 64, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(64, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))))(18): Conv((conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))(act): SiLU())(19): Concat()(20): C3((cv1): Conv((conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(256, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv3): Conv((conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(m): Sequential((0): Bottleneck((cv1): Conv((conv): Conv2d(128, 128, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(128, 128, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))))(21): Conv((conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1))(act): SiLU())(22): Concat()(23): C3((cv1): Conv((conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(512, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv3): Conv((conv): Conv2d(512, 512, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(m): Sequential((0): Bottleneck((cv1): Conv((conv): Conv2d(256, 256, kernel_size=(1, 1), stride=(1, 1))(act): SiLU())(cv2): Conv((conv): Conv2d(256, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))(act): SiLU()))))(24): Detect((m): ModuleList((0): Conv2d(128, 255, kernel_size=(1, 1), stride=(1, 1))(1): Conv2d(256, 255, kernel_size=(1, 1), stride=(1, 1))(2): Conv2d(512, 255, kernel_size=(1, 1), stride=(1, 1))))))

完整模型图片展示

图片较大,可下载看

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。