pub struct SliceLayer { /* private fields */ }Expand description
Slice layer has several modes:
- Caffe mode
§Parameters
- axis: Axis of split operation
- slice_point: Array of split points
Number of output blobs equals to number of split points plus one. The first blob is a slice on input from 0 to @p slice_point[0] - 1 by @p axis, the second output blob is a slice of input from @p slice_point[0] to @p slice_point[1] - 1 by @p axis and the last output blob is a slice of input from @p slice_point[-1] up to the end of @p axis size.
- TensorFlow mode
- begin: Vector of start indices
- size: Vector of sizes
More convenient numpy-like slice. One and only output blob
is a slice input[begin[0]:begin[0]+size[0], begin[1]:begin[1]+size[1], ...]
- Torch mode
- axis: Axis of split operation
Split input blob on the equal parts by @p axis.
Implementations§
Source§impl SliceLayer
impl SliceLayer
Sourcepub fn default() -> SliceLayer
pub fn default() -> SliceLayer
Creates a default instance of the class by calling the default constructor
pub fn create(params: &impl LayerParamsTraitConst) -> Result<Ptr<SliceLayer>>
Trait Implementations§
Source§impl AlgorithmTrait for SliceLayer
impl AlgorithmTrait for SliceLayer
Source§impl AlgorithmTraitConst for SliceLayer
impl AlgorithmTraitConst for SliceLayer
fn as_raw_Algorithm(&self) -> *const c_void
Source§fn write(&self, fs: &mut impl FileStorageTrait) -> Result<()>
fn write(&self, fs: &mut impl FileStorageTrait) -> Result<()>
Source§fn write_1(&self, fs: &mut impl FileStorageTrait, name: &str) -> Result<()>
fn write_1(&self, fs: &mut impl FileStorageTrait, name: &str) -> Result<()>
Source§fn write_with_name(&self, fs: &Ptr<FileStorage>, name: &str) -> Result<()>
fn write_with_name(&self, fs: &Ptr<FileStorage>, name: &str) -> Result<()>
Source§fn write_with_name_def(&self, fs: &Ptr<FileStorage>) -> Result<()>
fn write_with_name_def(&self, fs: &Ptr<FileStorage>) -> Result<()>
§Note
Source§fn empty(&self) -> Result<bool>
fn empty(&self) -> Result<bool>
Source§fn save(&self, filename: &str) -> Result<()>
fn save(&self, filename: &str) -> Result<()>
Source§fn get_default_name(&self) -> Result<String>
fn get_default_name(&self) -> Result<String>
Source§impl Boxed for SliceLayer
impl Boxed for SliceLayer
Source§unsafe fn from_raw(ptr: <SliceLayer as OpenCVFromExtern>::ExternReceive) -> Self
unsafe fn from_raw(ptr: <SliceLayer as OpenCVFromExtern>::ExternReceive) -> Self
Source§fn into_raw(self) -> <SliceLayer as OpenCVTypeExternContainer>::ExternSendMut
fn into_raw(self) -> <SliceLayer as OpenCVTypeExternContainer>::ExternSendMut
Source§fn as_raw(&self) -> <SliceLayer as OpenCVTypeExternContainer>::ExternSend
fn as_raw(&self) -> <SliceLayer as OpenCVTypeExternContainer>::ExternSend
Source§fn as_raw_mut(
&mut self,
) -> <SliceLayer as OpenCVTypeExternContainer>::ExternSendMut
fn as_raw_mut( &mut self, ) -> <SliceLayer as OpenCVTypeExternContainer>::ExternSendMut
Source§impl Debug for SliceLayer
impl Debug for SliceLayer
Source§impl Drop for SliceLayer
impl Drop for SliceLayer
Source§impl From<SliceLayer> for Algorithm
impl From<SliceLayer> for Algorithm
Source§fn from(s: SliceLayer) -> Self
fn from(s: SliceLayer) -> Self
Source§impl From<SliceLayer> for Layer
impl From<SliceLayer> for Layer
Source§fn from(s: SliceLayer) -> Self
fn from(s: SliceLayer) -> Self
Source§impl LayerTrait for SliceLayer
impl LayerTrait for SliceLayer
fn as_raw_mut_Layer(&mut self) -> *mut c_void
Source§fn set_blobs(&mut self, val: Vector<Mat>)
fn set_blobs(&mut self, val: Vector<Mat>)
Source§fn set_name(&mut self, val: &str)
fn set_name(&mut self, val: &str)
Source§fn set_type(&mut self, val: &str)
fn set_type(&mut self, val: &str)
Source§fn set_preferable_target(&mut self, val: i32)
fn set_preferable_target(&mut self, val: i32)
Source§fn finalize(
&mut self,
inputs: &impl ToInputArray,
outputs: &mut impl ToOutputArray,
) -> Result<()>
fn finalize( &mut self, inputs: &impl ToInputArray, outputs: &mut impl ToOutputArray, ) -> Result<()>
Source§fn forward_mat(
&mut self,
input: &mut Vector<Mat>,
output: &mut Vector<Mat>,
internals: &mut Vector<Mat>,
) -> Result<()>
fn forward_mat( &mut self, input: &mut Vector<Mat>, output: &mut Vector<Mat>, internals: &mut Vector<Mat>, ) -> Result<()>
Use Layer::forward(InputArrayOfArrays, OutputArrayOfArrays, OutputArrayOfArrays) instead
Source§fn forward(
&mut self,
inputs: &impl ToInputArray,
outputs: &mut impl ToOutputArray,
internals: &mut impl ToOutputArray,
) -> Result<()>
fn forward( &mut self, inputs: &impl ToInputArray, outputs: &mut impl ToOutputArray, internals: &mut impl ToOutputArray, ) -> Result<()>
Source§fn try_quantize(
&mut self,
scales: &Vector<Vector<f32>>,
zeropoints: &Vector<Vector<i32>>,
params: &mut impl LayerParamsTrait,
) -> Result<bool>
fn try_quantize( &mut self, scales: &Vector<Vector<f32>>, zeropoints: &Vector<Vector<i32>>, params: &mut impl LayerParamsTrait, ) -> Result<bool>
Source§fn forward_fallback(
&mut self,
inputs: &impl ToInputArray,
outputs: &mut impl ToOutputArray,
internals: &mut impl ToOutputArray,
) -> Result<()>
fn forward_fallback( &mut self, inputs: &impl ToInputArray, outputs: &mut impl ToOutputArray, internals: &mut impl ToOutputArray, ) -> Result<()>
Source§fn finalize_mat_to(
&mut self,
inputs: &Vector<Mat>,
outputs: &mut Vector<Mat>,
) -> Result<()>
fn finalize_mat_to( &mut self, inputs: &Vector<Mat>, outputs: &mut Vector<Mat>, ) -> Result<()>
Use Layer::finalize(InputArrayOfArrays, OutputArrayOfArrays) instead
Source§fn finalize_mat(&mut self, inputs: &Vector<Mat>) -> Result<Vector<Mat>>
fn finalize_mat(&mut self, inputs: &Vector<Mat>) -> Result<Vector<Mat>>
Use Layer::finalize(InputArrayOfArrays, OutputArrayOfArrays) instead
Source§fn run(
&mut self,
inputs: &Vector<Mat>,
outputs: &mut Vector<Mat>,
internals: &mut Vector<Mat>,
) -> Result<()>
fn run( &mut self, inputs: &Vector<Mat>, outputs: &mut Vector<Mat>, internals: &mut Vector<Mat>, ) -> Result<()>
This method will be removed in the future release.
Source§fn input_name_to_index(&mut self, input_name: &str) -> Result<i32>
fn input_name_to_index(&mut self, input_name: &str) -> Result<i32>
Source§fn output_name_to_index(&mut self, output_name: &str) -> Result<i32>
fn output_name_to_index(&mut self, output_name: &str) -> Result<i32>
Source§fn support_backend(&mut self, backend_id: i32) -> Result<bool>
fn support_backend(&mut self, backend_id: i32) -> Result<bool>
Source§fn init_halide(
&mut self,
inputs: &Vector<Ptr<BackendWrapper>>,
) -> Result<Ptr<BackendNode>>
fn init_halide( &mut self, inputs: &Vector<Ptr<BackendWrapper>>, ) -> Result<Ptr<BackendNode>>
fn init_ngraph( &mut self, inputs: &Vector<Ptr<BackendWrapper>>, nodes: &Vector<Ptr<BackendNode>>, ) -> Result<Ptr<BackendNode>>
fn init_vk_com( &mut self, inputs: &Vector<Ptr<BackendWrapper>>, outputs: &mut Vector<Ptr<BackendWrapper>>, ) -> Result<Ptr<BackendNode>>
fn init_webnn( &mut self, inputs: &Vector<Ptr<BackendWrapper>>, nodes: &Vector<Ptr<BackendNode>>, ) -> Result<Ptr<BackendNode>>
Source§unsafe fn init_cuda(
&mut self,
context: *mut c_void,
inputs: &Vector<Ptr<BackendWrapper>>,
outputs: &Vector<Ptr<BackendWrapper>>,
) -> Result<Ptr<BackendNode>>
unsafe fn init_cuda( &mut self, context: *mut c_void, inputs: &Vector<Ptr<BackendWrapper>>, outputs: &Vector<Ptr<BackendWrapper>>, ) -> Result<Ptr<BackendNode>>
Source§unsafe fn init_tim_vx(
&mut self,
tim_vx_info: *mut c_void,
inputs_wrapper: &Vector<Ptr<BackendWrapper>>,
outputs_wrapper: &Vector<Ptr<BackendWrapper>>,
is_last: bool,
) -> Result<Ptr<BackendNode>>
unsafe fn init_tim_vx( &mut self, tim_vx_info: *mut c_void, inputs_wrapper: &Vector<Ptr<BackendWrapper>>, outputs_wrapper: &Vector<Ptr<BackendWrapper>>, is_last: bool, ) -> Result<Ptr<BackendNode>>
Source§fn init_cann(
&mut self,
inputs: &Vector<Ptr<BackendWrapper>>,
outputs: &Vector<Ptr<BackendWrapper>>,
nodes: &Vector<Ptr<BackendNode>>,
) -> Result<Ptr<BackendNode>>
fn init_cann( &mut self, inputs: &Vector<Ptr<BackendWrapper>>, outputs: &Vector<Ptr<BackendWrapper>>, nodes: &Vector<Ptr<BackendNode>>, ) -> Result<Ptr<BackendNode>>
Source§fn try_attach(&mut self, node: &Ptr<BackendNode>) -> Result<Ptr<BackendNode>>
fn try_attach(&mut self, node: &Ptr<BackendNode>) -> Result<Ptr<BackendNode>>
Source§fn set_activation(&mut self, layer: &Ptr<ActivationLayer>) -> Result<bool>
fn set_activation(&mut self, layer: &Ptr<ActivationLayer>) -> Result<bool>
Source§fn try_fuse(&mut self, top: &mut Ptr<Layer>) -> Result<bool>
fn try_fuse(&mut self, top: &mut Ptr<Layer>) -> Result<bool>
Source§fn unset_attached(&mut self) -> Result<()>
fn unset_attached(&mut self) -> Result<()>
fn update_memory_shapes(&mut self, inputs: &Vector<MatShape>) -> Result<bool>
fn set_params_from(&mut self, params: &impl LayerParamsTraitConst) -> Result<()>
Source§impl LayerTraitConst for SliceLayer
impl LayerTraitConst for SliceLayer
fn as_raw_Layer(&self) -> *const c_void
Source§fn blobs(&self) -> Vector<Mat>
fn blobs(&self) -> Vector<Mat>
Source§fn name(&self) -> String
fn name(&self) -> String
Source§fn preferable_target(&self) -> i32
fn preferable_target(&self) -> i32
Source§fn apply_halide_scheduler(
&self,
node: &mut Ptr<BackendNode>,
inputs: &Vector<Mat>,
outputs: &Vector<Mat>,
target_id: i32,
) -> Result<()>
fn apply_halide_scheduler( &self, node: &mut Ptr<BackendNode>, inputs: &Vector<Mat>, outputs: &Vector<Mat>, target_id: i32, ) -> Result<()>
Source§fn get_scale_shift(
&self,
scale: &mut impl MatTrait,
shift: &mut impl MatTrait,
) -> Result<()>
fn get_scale_shift( &self, scale: &mut impl MatTrait, shift: &mut impl MatTrait, ) -> Result<()>
Source§fn get_scale_zeropoint(
&self,
scale: &mut f32,
zeropoint: &mut i32,
) -> Result<()>
fn get_scale_zeropoint( &self, scale: &mut f32, zeropoint: &mut i32, ) -> Result<()>
fn get_memory_shapes( &self, inputs: &Vector<MatShape>, required_outputs: i32, outputs: &mut Vector<MatShape>, internals: &mut Vector<MatShape>, ) -> Result<bool>
fn get_flops( &self, inputs: &Vector<MatShape>, outputs: &Vector<MatShape>, ) -> Result<i64>
Source§impl SliceLayerTrait for SliceLayer
impl SliceLayerTrait for SliceLayer
Source§impl SliceLayerTraitConst for SliceLayer
impl SliceLayerTraitConst for SliceLayer
Source§impl TryFrom<Layer> for SliceLayer
impl TryFrom<Layer> for SliceLayer
impl Send for SliceLayer
Auto Trait Implementations§
impl Freeze for SliceLayer
impl RefUnwindSafe for SliceLayer
impl !Sync for SliceLayer
impl Unpin for SliceLayer
impl UnsafeUnpin for SliceLayer
impl UnwindSafe for SliceLayer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
impl<Mat> ModifyInplace for Matwhere
Mat: Boxed,
Source§unsafe fn modify_inplace<Res>(
&mut self,
f: impl FnOnce(&Mat, &mut Mat) -> Res,
) -> Res
unsafe fn modify_inplace<Res>( &mut self, f: impl FnOnce(&Mat, &mut Mat) -> Res, ) -> Res
Mat or another similar object. By passing
a mutable reference to the Mat to this function your closure will get called with the read reference and a write references
to the same Mat. This is unsafe in a general case as it leads to having non-exclusive mutable access to the internal data,
but it can be useful for some performance sensitive operations. One example of an OpenCV function that allows such in-place
modification is imgproc::threshold. Read more