{
enum Algorithm
{
+ FuseAddWithFullyConnected,
FuseAddWithTConv,
FuseBatchNormWithConv,
FuseBatchNormWithDwConv,
Requantize,
FoldAddV2,
FoldCast,
+ FoldDepthwiseConv2D,
FoldDequantize,
FoldSparseToDense,
+ ForceQuantParam,
ForwardReshapeToUnaryOp,
SparsifyTensorPass,
FusePreActivationBatchNorm,
ReplaceSubWithAdd,
SubstitutePackToReshape,
SubstitutePadV2ToPad,
+ SubstituteSplitVToSplit,
SubstituteSqueezeToReshape,
+ ExpandBroadcastConst,
ConvertNCHWToNHWC,
RemoveUnnecessarySlice,
RemoveUnnecessaryStridedSlice,
enum AlgorithmParameters
{
// quantize
- Quantize_input_dtype,
- Quantize_output_dtype,
+ Quantize_input_model_dtype,
+ Quantize_output_model_dtype,
Quantize_granularity, // layer-wise or channel-wise
+ Quantize_tensor_names,
+ Quantize_scales,
+ Quantize_zero_points,
// sparsify
Sparsify_tensor_name,
// convert NCHW to NHWC
NCHW_to_NHWC_input_shape,
NCHW_to_NHWC_output_shape,
+
+ Quantize_input_dtype = Quantize_input_model_dtype, // TODO Remove this
+ Quantize_output_dtype = Quantize_output_model_dtype, // TODO Remove this
};
virtual ~Options() = default;
virtual bool query(Algorithm) = 0;
virtual void param(AlgorithmParameters, const std::string &) = 0;
virtual const std::string param(AlgorithmParameters) const = 0;
+ virtual void params(AlgorithmParameters, std::vector<std::string> &) = 0;
+ virtual std::vector<std::string> params(AlgorithmParameters) const = 0;
};
public: