Skip to content

Commit b1f40cc

Browse files
jmitrevsvloncar
authored andcommitted
add protection for when kernel_quanitzer is None
1 parent 02688f1 commit b1f40cc

File tree

1 file changed

+30
-8
lines changed

1 file changed

+30
-8
lines changed

hls4ml/converters/keras/qkeras.py

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ def get_quantizer_from_config(keras_layer, quantizer_var):
2424
def parse_qdense_layer(keras_layer, input_names, input_shapes, data_reader):
2525
layer, output_shape = parse_dense_layer(keras_layer, input_names, input_shapes, data_reader)
2626

27-
layer['weight_quantizer'] = get_quantizer_from_config(keras_layer, 'kernel')
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+
2832
if keras_layer['config']['bias_quantizer'] is not None:
2933
layer['bias_quantizer'] = get_quantizer_from_config(keras_layer, 'bias')
3034
else:
@@ -42,7 +46,11 @@ def parse_qconv_layer(keras_layer, input_names, input_shapes, data_reader):
4246
elif '2D' in keras_layer['class_name']:
4347
layer, output_shape = parse_conv2d_layer(keras_layer, input_names, input_shapes, data_reader)
4448

45-
layer['weight_quantizer'] = get_quantizer_from_config(keras_layer, 'kernel')
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+
4654
if keras_layer['config']['bias_quantizer'] is not None:
4755
layer['bias_quantizer'] = get_quantizer_from_config(keras_layer, 'bias')
4856
else:
@@ -55,8 +63,10 @@ def parse_qconv_layer(keras_layer, input_names, input_shapes, data_reader):
5563
def parse_qdepthwiseqconv_layer(keras_layer, input_names, input_shapes, data_reader):
5664
layer, output_shape = parse_conv2d_layer(keras_layer, input_names, input_shapes, data_reader)
5765

58-
layer['depthwise_quantizer'] = get_quantizer_from_config(keras_layer, 'depthwise')
59-
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
6070
if keras_layer['config']['bias_quantizer'] is not None:
6171
layer['bias_quantizer'] = get_quantizer_from_config(keras_layer, 'bias')
6272
else:
@@ -74,8 +84,14 @@ def parse_qsepconv_layer(keras_layer, input_names, input_shapes, data_reader):
7484
elif '2D' in keras_layer['class_name']:
7585
layer, output_shape = parse_conv2d_layer(keras_layer, input_names, input_shapes, data_reader)
7686

77-
layer['depthwise_quantizer'] = get_quantizer_from_config(keras_layer, 'depthwise')
78-
layer['pointwise_quantizer'] = get_quantizer_from_config(keras_layer, 'pointwise')
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
7995

8096
if keras_layer['config']['bias_quantizer'] is not None:
8197
layer['bias_quantizer'] = get_quantizer_from_config(keras_layer, 'bias')
@@ -91,8 +107,14 @@ def parse_qrnn_layer(keras_layer, input_names, input_shapes, data_reader):
91107

92108
layer, output_shape = parse_rnn_layer(keras_layer, input_names, input_shapes, data_reader)
93109

94-
layer['weight_quantizer'] = get_quantizer_from_config(keras_layer, 'kernel')
95-
layer['recurrent_quantizer'] = get_quantizer_from_config(keras_layer, 'recurrent')
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
96118

97119
if keras_layer['config']['bias_quantizer'] is not None:
98120
layer['bias_quantizer'] = get_quantizer_from_config(keras_layer, 'bias')

0 commit comments

Comments
 (0)