Skip to content

Latest commit

 

History

History
59 lines (36 loc) · 2.66 KB

concrete.fhe.extensions.convolution.md

File metadata and controls

59 lines (36 loc) · 2.66 KB

module concrete.fhe.extensions.convolution

Tracing and evaluation of convolution.

Global Variables

  • SUPPORTED_AUTO_PAD

function conv

conv(
    x: Union[ndarray, Tracer],
    weight: Union[ndarray, List, Tracer],
    bias: Optional[ndarray, List, Tracer] = None,
    pads: Optional[Tuple[int, ], List[int]] = None,
    strides: Optional[Tuple[int, ], List[int]] = None,
    dilations: Optional[Tuple[int, ], List[int]] = None,
    kernel_shape: Optional[Tuple[int, ], List[int]] = None,
    group: int = 1,
    auto_pad: str = 'NOTSET'
) → Union[ndarray, Tracer]

Trace and evaluate convolution operations.

Refer to https://github.com/onnx/onnx/blob/main/docs/Operators.md#Conv for more info.

Args:

  • x (Union[np.ndarray, Tracer]): input of shape (N, C, D1, ..., DN)
  • weight (Union[np.ndarray, Tracer]): kernel of shape (F, C / group, K1, ..., KN)
  • bias (Optional[Union[np.ndarray, Tracer]], optional): bias of shape (F,). Defaults to None. pads (Optional[Union[Tuple[int, ...], List[int]]], optional): padding for the beginning and ending along each spatial axis (D1_begin, D2_begin, ..., D1_end, D2_end, ...). Will be set to 0 along each spatial axis if not set. strides (Optional[Union[Tuple[int, ...], List[int]]], optional): stride along each spatial axis. Will be set to 1 along each spatial axis if not set. dilations (Optional[Union[Tuple[int, ...], List[int]]], optional): dilation along each spatial axis. Will be set to 1 along each spatial axis if not set. kernel_shape (Optional[Union[Tuple[int, ...], List[int]]], optional): shape of the convolution kernel. Inferred from input weight if not present group (int, optional): number of groups input channels and output channels are divided into. Defaults to 1.
  • auto_pad (str, optional): padding strategy. Defaults to "NOTSET".

Raises:

  • ValueError: if arguments are not appropriate
  • TypeError: unexpected types
  • NotImplementedError: a convolution that we don't support

Returns:

  • Union[np.ndarray, Tracer]: evaluation result or traced computation