export  interface BatchnormParam{
    use_global: boolean;
    moving_average_fraction:number;
    eps:number;
};

export  interface ConvolutionParam{
    bias_term: boolean;
    dilations: number[];
    kernel_shape:number[];
    pads:number[];
    strides:number[];
    group: number;
    reluFuseType:number;//0 not fusion; 1 ReLU fusion
};

export interface ScaleParam{
    axis: number;
    num_axis:number;
    bias:boolean;
};

export interface SoftmaxParam{
    axis: number;
};

export interface ElewiseParam{
    coeff: number[];
    mode: number;//0:sum 1:max 2:prod
};

export interface PoolingParam{
    window:number[];
    pads:number[];
    stride:number[];
    global_pooling:boolean;
    pooling_mode:number; //0:max 1:average_exclude 2:average_include
    ceil_mode:boolean;
};

export interface FcParam{
    num_output:number;
    axis: number;
    bias_term:boolean;
};

export interface ChannelShuffleParam{
    group:number;
};

export interface SliceParam{
    slice_point:number[];
    axis: number;
};

export interface ConcatParam{
    axis: number;
    concat_dim: number;
};

export interface PReLUParam{
    channel_shared: boolean;
};

export interface SubpixelUpParam{
    upsample: number;
    backend: number; //caffe:0 pytorch:1
};

export interface SubpixelDownParam{
    downsample: number;
    backend: number; //caffe:0 pytorch:1
};

export interface TileParam{
    axis: number;
    tiles: number; 
};

export interface ReflectionPadParam{
    pad_h: number;
    pad_w: number; 
};

export interface InterpParam{
    interp_width: number;
    interp_height: number; 
    zoom_factor: number; 
    shrink_factor: number; 
    pad_beg: number; 
    pad_end: number; 
    align_corners: number;
    mode: number;
    backend: number;
};

export interface LogParam{
    base: number;
    scale: number;
    shift: number; 
};

export interface ClipParam{
    max: number;
    min: number;
};