yolov5的common.py文件的解读

>- **🍨 本文为[🔗365天深度学习训练营(https://mp.weixin.qq.com/s/0dvHCaOoFnW8SCp3JpzKxg) 中的学习记录博客**
>- **🍖 原作者:[K同学啊](https://mtyjkh.blog.youkuaiyun.com/)** 

        今天我们就依据yolov5的yaml文件来解析common.py。

        首先看看需要导入那些包和基本配置:

import ast
import contextlib
import json
import math
import platform
import warnings
import zipfile
from collections import OrderedDict, namedtuple
from copy import copy
from pathlib import Path
from urllib.parse import urlparse

import cv2
import numpy as np
import pandas as pd
import requests
import torch
import torch.nn as nn
from PIL import Image
from torch.cuda import amp

        从yaml文件我们可以找到经常出现的模块:Conv,C3,SPP,Concat。接下来对这些比较重要的模块进行介绍。

模块介绍

1.1 autopad

def autopad(k, p=None, d=1):
    """
    用于Conv函数和Classify函数中
    根据扩张系数d对卷积核的大小进行调整,再根据卷积核大小k自动计算卷积核padding数(0填充) 
    :params k: 卷积核的大小
    :return p: 自动计算的需要pad值(默认为0填充)
    :params d: 卷积核的扩张系数
    """
    if d > 1:
        k = d * (k - 1) + 1 if isinstance(k, int) else [d * (x - 1) + 1 for x in k]  # actual kernel-size
    if p is None:
        p = k // 2 if isinstance(k, int) else [x // 2 for x in k]  # auto-pad
    return p

        这个模块可以根据输入的卷积核大小来计算pad值,主要再Conv和Classify模块中会使用到。

1.2 Conv

        卷积模块,它由一个卷积层,Bn层和激活函数构成。

  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值