mirror of
https://github.com/zama-ai/concrete.git
synced 2026-01-10 05:18:00 -05:00
2.6 KiB
2.6 KiB
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 appropriateTypeError: unexpected typesNotImplementedError: a convolution that we don't support
Returns:
Union[np.ndarray, Tracer]: evaluation result or traced computation