python异常机制
numpy中的ndim / shape/ dtype/ astype方法
- ndim 返回数组维度(int)
- shape 返回各维度大小的元组(元组)
- dtype 返回该数组的数据类型(整型返回int32,有小数点返回float64)
- astype 转换数组的数据类型
- int32 —> float64
- float64 —> int32 小数部分被截断
- string —> float64 如果字符串数组表示的全是数字,也可以用astype转化为数值类型
numpy.transpose(a, axes=None)
- 重置数组的维度
- 参数:a<输入数组>;axes<整数列表>默认情况下,反转维度,否则根据给定的值对维度进行排列。
- 返回值:修改维度后的a
PIL.Image与numpy.array之间的相互转换
1 | from PIL import Image |
array[::-1,:,:] 逆序
numpy.flatten(): 多维数组变成一维数组
numpy.mean(array, axes)
中心化与标准化
- 中心化(又叫零均值化)zero-centered 或者 Mean-subtraction
- 标准化(又叫归一化)Standardization 或者 Normalization
- 意义:数据中心化和标准化在回归分析中是取消由于量纲不同、自身变异或者数值相差较大所引起的误差。
- 原理:
- 数据标准化是指变量减去均值,再除以标准差
- 数据中心化是指变量减去均值
- 目的:通过中心化和标准化处理,得到均值为0,标准差为1的服从标准正态分布的数据。在训练神经网络的过程中,通过将数据标准化,能够加速权重参数的收敛;对数据进行中心化预处理,能够增加基向量的正交性
1 | mean = np.array([np.mean(image[0]),np.mean(image[1]),np.mean(image[2])]) |
- caffe与PyTorch的图像预处理不同。caffe2中图像的通道与OpenCV相同,是BGR格式,标准化到0-255,PyTorch中图像是RGB格式,标准化到0-1。
numpy.random.get_state() & numpy.random.set_state()
- 功能:获取/设置随机生成器np.random的状态
- 作用:具有相同state的随机生成器(random)的随机效果相同。随机生成器random,每执行一次,random的状态(state)就会变化一次,所以每次产生的随机数都不同,或随机操作的效果都不同。而当random的状态(state)不变时,多次执行random的同一操作具有相同的效果。
- 用途:
- 通过设置相同的state,使得两次生成的随机数相同
- 通过设置相同的state,使得random.shuffle以相同的规律打乱两个列表,进而使得两个列表被打乱后,仍旧能维持两个列表间元素的一一对应关系。这一点在深度学习的标注数据集的打乱的过程中很有用。一一对应的image_list 与label_list,在分别打乱后,仍能维持一一对应的关系。
1 | import numpy as np |
cv::RotatedRect
这是一个存储旋转矩形的类,通常用来存储最小外接矩形函数minAreaRect()
和椭圆拟合函数fitEllipse()
返回的结果。它具有三个属性:
- 矩形中心(质心):
const Point2f ¢er
- 边长(长和宽):
const Size2f &size
- 旋转角度:
float angle
参数angle
从平行于x轴射线出发,逆时针为负,顺时针为正。逆时针旋转碰到的第一条边的边长即为width