def sp_batch_map_coordinates(inputs, coords): """Reference implementation for batch_map_coordinates""" coords = coords.clip(0, inputs.shape[1] - 1) mapped_vals = np.array([ sp_map_coordinates(input, coord.T, mode='nearest', order=1) for input, coord in zip(inputs, coords) ]) return mapped_vals
def sp_batch_map_coordinates(inputs, coords): coords = coords.clip(0, inputs.shape[1] - 1) mapped_vals = np.array([ sp_map_coordinates(input, coord.T, mode='nearest', order=1) for input, coord in zip(inputs, coords) ]) return mapped_vals
def sp_batch_map_coordinates(inputs, coords): """Reference implementation for batch_map_coordinates""" # coords = coords.clip(0, inputs.shape[1] - 1) assert (coords.shape[2] == 2) height = coords[:,:,0].clip(0, inputs.shape[1] - 1) width = coords[:,:,1].clip(0, inputs.shape[2] - 1) np.concatenate((np.expand_dims(height, axis=2), np.expand_dims(width, axis=2)), 2) mapped_vals = np.array([ sp_map_coordinates(input, coord.T, mode='nearest', order=1) for input, coord in zip(inputs, coords) ]) return mapped_vals
def sp_batch_map_coordinates(inputs, coords): """ 仅在 h = w 的情况下生效 :param inputs: :param coords: :return: """ # 将coords里面的所有数值全部都限制在(0, h^2-1)之间 coords = coords.clip(0, inputs.shape[1] - 1) # 使用双线性差值算法 找到合适的位置 mapped_vals = np.array([ sp_map_coordinates(input, coord.T, mode='nearest', order=1) for input, coord in zip(inputs, coords) ]) return mapped_vals