比较不同读取图片函数的速度
PIL.Image
%timeit Image.open(“../datasets/kaggle/petfinder_clean/train/00a1ae8867e0bb89f061679e1cf29e80.jpg”)
1
43.9 µs ± 968 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
torchvision.io.read_image
%timeit read_image(“../datasets/kaggle/petfinder_clean/train/00a1ae8867e0bb89f061679e1cf29e80.jpg”)
1.76 ms ± 18.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
opencv
%timeit cv2.imread(“../datasets/kaggle/petfinder_clean/train/00a1ae8867e0bb89f061679e1cf29e80.jpg”)
1
4.12 ms ± 51.1 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
PIL.Image -> numpy.ndarray
%timeit np.array(Image.open(“../datasets/kaggle/petfinder_clean/train/00a1e0c0f89ff89a8f32d42e9025f6b2.jpg”))
1
13 ms ± 2.99 ms per loop (mean ± std. dev. of 7 runs, 100 loops each)
Sturges’ Rule
Sturges在1926年在直方图制作方法上作出了开创性的工作,得到了分组数 $k$ 关于样本量 $n$ 的粗略关系。
\[k = 1 + 3.322 \lg n\]现在,许多学者和一些统计软件还都是以 Sturges 公式为主要依据来确定直方图分组数。
这是一个经验公式。因此没有推导过程。