数据预处理(normalize、scale)

本文介绍了MATLAB中实现数据归一化的几种方法,包括去除数据集中的平均值、通过截断标准差来限定数据范围及线性映射数据到指定区间等。还提供了神经网络权重初始化的具体实现。
摘要由CSDN通过智能技术生成

matlab 工具函数(三)—— normalize(归一化数据)

注:待处理的数据 XRd×N N 表示样本的个数,d 则是单个样本的维度;

1. 去均值(remove DC)

X = bsxfun(@minus, X, mean(X));

2. 截断标准差

这里比如截断保留 +/- 3 个标准差,并 scale 至 -1/1

xstd = 3*std(X(:));
X = max(min(xstd, X), -xstd)/xstd;

3. 从一个尺度空间,缩放(线性映射)到另一个尺度空间

现考虑将 [a,b] 缩放(map/transform)到另一个尺度空间 [c,d]

x[a,b]x=(dc)xaba+c,x[c,d]

其中 xaba 将原始数据,缩放到 [0, 1] 区间内;

比如将数据从 [-1, 1] 线性映射到 [0.1, 0.9] 区间:

X = (.9-.1)*(X+1)/2+.1;

再比如对神经网络权值矩阵的 xavier-initializer 初始化方式,服从 (-r, r) 上的均匀分布( r=6nin+nout ),matlab 中的 rand() 生成的是 (0, 1) 上的均匀分布,这里如何从 (0, 1) 上的均匀分布,获取任意区间上的均匀分布( (r,r) ),

xU[0,1]x010(r(r))r=x2rr

function theta = initializeParameters(visSize, hidSize):
r = sqrt(6/(visSize+hidSize));
W1 = rand(hidSize, visSize)*2*r-r;
b1 = zeros(hidSize, 1);
theta = [W1(:); b1(:)];
end
### YOLOv8 数据预处理的方法和步骤 在YOLOv8中,数据预处理是模型训练和推理过程中不可或缺的一部分。具体来说,数据预处理涵盖了多个方面的工作,包括但不限于图像尺寸调整、颜色空间转换以及标准化等操作。 #### 图像尺寸调整 为了使输入到网络中的图片具有统一大小,在预处理阶段会先对原始采集来的不同分辨率的照片做缩放处理。通常情况下,目标检测算法倾向于固定住宽高比例不变地裁剪或填充至指定像素数[^1]。 #### 颜色空间变换 有时原图可能不是RGB格式而是其他色彩模式表示出来的影像文件;此时就需要将其转成标准三通道彩色形式以便后续卷积层能够正常解析特征信息。 #### 归一化/标准化 这一步骤旨在缩小数值范围差异带来的影响,通过线性映射的方式把各维度上的取值约束在一个较小区间内(比如0~1之间),从而加速收敛速度并提高泛化能力。对于YOLO系列而言,默认采用均值为零方差为单位矩阵的形式来进行正态分布式的白化处理。 ```python import cv2 import numpy as np def preprocess_image(image_path, target_size=(640, 640)): image = cv2.imread(image_path) # Resize the image while maintaining aspect ratio with padding. h, w = image.shape[:2] scale = min(target_size[0]/w, target_size[1]/h) nw, nh = int(w*scale), int(h*scale) resized_image = cv2.resize(image, (nw,nh)) new_image = np.full((target_size[1], target_size[0], 3), 128, dtype=np.uint8) dx = (target_size[0]-nw)//2 dy = (target_size[1]-nh)//2 new_image[dy:dy+nh,dx:dx+nw,:] = resized_image # Convert to RGB and normalize pixel values between [0, 1]. rgb_img = cv2.cvtColor(new_image, cv2.COLOR_BGR2RGB).astype(np.float32)/255.0 return rgb_img ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值