Finish the Images2Neibs ops
Here is what is left:
Here is the numpy/scipy interface about the mode/border parameter. I remember having heard about a neighborhood fct in numpy/scipy, we should check that interface too.
numpy.convolve(a, v, mode='full')(with zeros padding), mode in full, valid, same
scipy.stsci.convolve.convolve2d(data, kernel, outpuh1. None, mode'nearest', cvah1. 0.0, fft0) always full with different wait to pad
scipy.signal.convolve(in1, in2, modh1. 'full', old_behaviorTrue) mode in full, valid, same with zeros padding
scipy.signal.convolve2d(in1, in2, modh1. 'full', boundary'fill', fillvaluh1. 0, old_behaviorTrue) default full pad with zero modh1. full,same,valid, bondaryfill,wrap,symm(symmetrical)
PyObject* PyArray_NeighborhoodIterNew(PyArrayIterObject* iter, npy_intp bounds, int mode, PyArrayObject* fill_value) with mode being one of NPY_NEIGHBORHOOD_ITER_ZERO_PADDING, NPY_NEIGHBORHOOD_ITER_ONE_PADDING, NPY_NEIGHBORHOOD_ITER_CONSTANT_PADDING, NPY_NEIGHBORHOOD_ITER_MIRROR_PADDING, NPY_NEIGHBORHOOD_ITER_CIRCULAR_PADDING
Their is 3 'shape_mode' that define the shape of the output, valid, full, same
Their is many 'border_mode' that define what happen to border in shape_mode full and same: nearest, wrap, reflect, constant. (symmetric and mirror are synonym to reflect)
- optimize gpu code
- move gpu code to sandbox/cuda/ to don't load cuda code by default if gpu is not used.
- Move the test of the gpu code to sandbox/cuda/tests
- check the numpy/scipy interface for the mode, and border and select one of them.
- implement the full mode and other border mode.
- implement infer_shape
- move the cpu version out of the sandbox
- Test all new code and check that we test all case. Especially on the gpu
Here is the numpy/scipy interface about the mode/border parameter. I remember having heard about a neighborhood fct in numpy/scipy, we should check that interface too.
numpy.convolve(a, v, mode='full')(with zeros padding), mode in full, valid, same
scipy.stsci.convolve.convolve2d(data, kernel, outpuh1. None, mode'nearest', cvah1. 0.0, fft0) always full with different wait to pad
scipy.signal.convolve(in1, in2, modh1. 'full', old_behaviorTrue) mode in full, valid, same with zeros padding
scipy.signal.convolve2d(in1, in2, modh1. 'full', boundary'fill', fillvaluh1. 0, old_behaviorTrue) default full pad with zero modh1. full,same,valid, bondaryfill,wrap,symm(symmetrical)
PyObject* PyArray_NeighborhoodIterNew(PyArrayIterObject* iter, npy_intp bounds, int mode, PyArrayObject* fill_value) with mode being one of NPY_NEIGHBORHOOD_ITER_ZERO_PADDING, NPY_NEIGHBORHOOD_ITER_ONE_PADDING, NPY_NEIGHBORHOOD_ITER_CONSTANT_PADDING, NPY_NEIGHBORHOOD_ITER_MIRROR_PADDING, NPY_NEIGHBORHOOD_ITER_CIRCULAR_PADDING
Their is 3 'shape_mode' that define the shape of the output, valid, full, same
Their is many 'border_mode' that define what happen to border in shape_mode full and same: nearest, wrap, reflect, constant. (symmetric and mirror are synonym to reflect)
Leave a comment