9
9
10
10
11
11
def get_quantizer_from_config (keras_layer , quantizer_var ):
12
- quantizer_config = keras_layer ['config' ][f'{ quantizer_var } _quantizer' ]
12
+ quantizer_config = keras_layer ['config' ].get (f'{ quantizer_var } _quantizer' , None )
13
+ if quantizer_config is None :
14
+ return None # No quantizer specified in the layer
13
15
if keras_layer ['class_name' ] == 'QBatchNormalization' :
14
16
return QKerasQuantizer (quantizer_config )
15
17
elif 'binary' in quantizer_config ['class_name' ]:
@@ -24,15 +26,8 @@ def get_quantizer_from_config(keras_layer, quantizer_var):
24
26
def parse_qdense_layer (keras_layer , input_names , input_shapes , data_reader ):
25
27
layer , output_shape = parse_dense_layer (keras_layer , input_names , input_shapes , data_reader )
26
28
27
- if keras_layer ['config' ]['kernel_quantizer' ] is not None :
28
- layer ['weight_quantizer' ] = get_quantizer_from_config (keras_layer , 'kernel' )
29
- else :
30
- layer ['weight_quantizer' ] = None
31
-
32
- if keras_layer ['config' ]['bias_quantizer' ] is not None :
33
- layer ['bias_quantizer' ] = get_quantizer_from_config (keras_layer , 'bias' )
34
- else :
35
- layer ['bias_quantizer' ] = None
29
+ layer ['weight_quantizer' ] = get_quantizer_from_config (keras_layer , 'kernel' )
30
+ layer ['bias_quantizer' ] = get_quantizer_from_config (keras_layer , 'bias' )
36
31
37
32
return layer , output_shape
38
33
@@ -46,15 +41,8 @@ def parse_qconv_layer(keras_layer, input_names, input_shapes, data_reader):
46
41
elif '2D' in keras_layer ['class_name' ]:
47
42
layer , output_shape = parse_conv2d_layer (keras_layer , input_names , input_shapes , data_reader )
48
43
49
- if keras_layer ['config' ]['kernel_quantizer' ] is not None :
50
- layer ['weight_quantizer' ] = get_quantizer_from_config (keras_layer , 'kernel' )
51
- else :
52
- layer ['weight_quantizer' ] = None
53
-
54
- if keras_layer ['config' ]['bias_quantizer' ] is not None :
55
- layer ['bias_quantizer' ] = get_quantizer_from_config (keras_layer , 'bias' )
56
- else :
57
- layer ['bias_quantizer' ] = None
44
+ layer ['weight_quantizer' ] = get_quantizer_from_config (keras_layer , 'kernel' )
45
+ layer ['bias_quantizer' ] = get_quantizer_from_config (keras_layer , 'bias' )
58
46
59
47
return layer , output_shape
60
48
@@ -63,14 +51,8 @@ def parse_qconv_layer(keras_layer, input_names, input_shapes, data_reader):
63
51
def parse_qdepthwiseqconv_layer (keras_layer , input_names , input_shapes , data_reader ):
64
52
layer , output_shape = parse_conv2d_layer (keras_layer , input_names , input_shapes , data_reader )
65
53
66
- if keras_layer ['config' ]['depthwise_quantizer' ] is not None :
67
- layer ['depthwise_quantizer' ] = get_quantizer_from_config (keras_layer , 'depthwise' )
68
- else :
69
- layer ['depthwise_quantizer' ] = None
70
- if keras_layer ['config' ]['bias_quantizer' ] is not None :
71
- layer ['bias_quantizer' ] = get_quantizer_from_config (keras_layer , 'bias' )
72
- else :
73
- layer ['bias_quantizer' ] = None
54
+ layer ['depthwise_quantizer' ] = get_quantizer_from_config (keras_layer , 'depthwise' )
55
+ layer ['bias_quantizer' ] = get_quantizer_from_config (keras_layer , 'bias' )
74
56
75
57
return layer , output_shape
76
58
@@ -84,19 +66,9 @@ def parse_qsepconv_layer(keras_layer, input_names, input_shapes, data_reader):
84
66
elif '2D' in keras_layer ['class_name' ]:
85
67
layer , output_shape = parse_conv2d_layer (keras_layer , input_names , input_shapes , data_reader )
86
68
87
- if keras_layer ['config' ]['depthwise_quantizer' ] is not None :
88
- layer ['depthwise_quantizer' ] = get_quantizer_from_config (keras_layer , 'depthwise' )
89
- else :
90
- layer ['depthwise_quantizer' ] = None
91
- if keras_layer ['config' ]['pointwise_quantizer' ] is not None :
92
- layer ['pointwise_quantizer' ] = get_quantizer_from_config (keras_layer , 'pointwise' )
93
- else :
94
- layer ['pointwise_quantizer' ] = None
95
-
96
- if keras_layer ['config' ]['bias_quantizer' ] is not None :
97
- layer ['bias_quantizer' ] = get_quantizer_from_config (keras_layer , 'bias' )
98
- else :
99
- layer ['bias_quantizer' ] = None
69
+ layer ['depthwise_quantizer' ] = get_quantizer_from_config (keras_layer , 'depthwise' )
70
+ layer ['pointwise_quantizer' ] = get_quantizer_from_config (keras_layer , 'pointwise' )
71
+ layer ['bias_quantizer' ] = get_quantizer_from_config (keras_layer , 'bias' )
100
72
101
73
return layer , output_shape
102
74
@@ -107,19 +79,9 @@ def parse_qrnn_layer(keras_layer, input_names, input_shapes, data_reader):
107
79
108
80
layer , output_shape = parse_rnn_layer (keras_layer , input_names , input_shapes , data_reader )
109
81
110
- if keras_layer ['config' ]['kernel_quantizer' ] is not None :
111
- layer ['weight_quantizer' ] = get_quantizer_from_config (keras_layer , 'kernel' )
112
- else :
113
- layer ['weight_quantizer' ] = None
114
- if keras_layer ['config' ]['recurrent_quantizer' ] is not None :
115
- layer ['recurrent_quantizer' ] = get_quantizer_from_config (keras_layer , 'recurrent' )
116
- else :
117
- layer ['recurrent_quantizer' ] = None
118
-
119
- if keras_layer ['config' ]['bias_quantizer' ] is not None :
120
- layer ['bias_quantizer' ] = get_quantizer_from_config (keras_layer , 'bias' )
121
- else :
122
- layer ['bias_quantizer' ] = None
82
+ layer ['weight_quantizer' ] = get_quantizer_from_config (keras_layer , 'kernel' )
83
+ layer ['recurrent_quantizer' ] = get_quantizer_from_config (keras_layer , 'recurrent' )
84
+ layer ['bias_quantizer' ] = get_quantizer_from_config (keras_layer , 'bias' )
123
85
124
86
return layer , output_shape
125
87
0 commit comments