gpt4 book ai didi

python - scikit-learn 的 extract_patches 函数背后的理论/算法是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 14:39:53 25 4
gpt4 key购买 nike

我正在使用 extract_patches_2dextract_patches 从 2d 图像中提取本地补丁,我希望获得解释补丁实现方法的理论和引用资料萃取。

最佳答案

我不确定你指的是什么理论,在幕后这些方法只是巧妙的数组操作(剧透:numpy数组操作)。

  • 第一个,extract_patches_2d ,是 extract_patches 的简单二维包装器,它调用

    extract_patches(image,
    patch_shape=(p_h, p_w, n_colors),
    extraction_step=1)

    并 reshape 结果 ( source code )。

  • 第二个 extract_patches 也是一个包装器,这次是 numpy.as_strided 。它只准备 2*n 形状和跨步以将工作委托(delegate)给

    as_strided(arr, shape=shape, strides=strides)

    这是它的source code .

  • 真正有趣的是numpy.as_strided 。从它的文档:

    as_strided creates a view into the array given the exact strides and shape. This means it manipulates the internal data structure of ndarray and, if done incorrectly, the array elements can point to invalid memory and can corrupt results or crash your program. It is advisable to always use the original x.strides when calculating new strides to avoid reliance on a contiguous memory layout.

    因此,基本上,结果是内存中同一数组的包装器( View ),它提供索引查找,并且每个索引都在查找 x 内的特定区域>。 numpy.ndarray.view是 numpy 的核心函数,它允许在不重新分配内存的情况下查看现有数组的内部。如果您想深入了解 numpy 如何执行数组操作和 View ,numpy internals是一个很好的起点。

关于python - scikit-learn 的 extract_patches 函数背后的理论/算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46621786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com