@@ -691,7 +691,7 @@ def annotate_sign(node: Node, quantization_config: QuantizationConfig) -> None:
691691
692692@register_annotator ([torch .ops .aten .slice .Tensor ])
693693def annotate_slice (node : Node , quantization_config : QuantizationConfig ) -> None :
694- annotate_single_in_single_out (node , quantization_config )
694+ annotate_single_in_share_out (node , quantization_config )
695695
696696
697697@register_annotator ([torch .ops .aten .slice_scatter .default ])
@@ -1281,27 +1281,15 @@ def annotate_cat(node: Node, quantization_config: QuantizationConfig) -> None:
12811281 if _is_annotated ([node ]) or not _is_float_tensor (node ):
12821282 return
12831283
1284- assert isinstance (input_nodes , Sequence )
1285-
1286- first_input_node = input_nodes [0 ]
12871284 input_qspec_map = {}
1288- assert isinstance (first_input_node , Node )
1289- assert isinstance (node , Node )
1290- if _is_float_tensor (first_input_node ):
1291- input_qspec_map [first_input_node ] = quantization_config .input_activation
1292- share_qparams_with_input_act0_qspec = SharedQuantizationSpec (
1293- (first_input_node , node )
1294- )
1295-
1296- for input_node in input_nodes [1 :]:
1297- if input_node not in input_qspec_map :
1298- assert isinstance (input_node , Node )
1299- if _is_float_tensor (input_node ):
1300- input_qspec_map [input_node ] = share_qparams_with_input_act0_qspec
1285+ for input_node in input_nodes :
1286+ assert isinstance (input_node , Node )
1287+ if _is_float_tensor (input_node ):
1288+ input_qspec_map [input_node ] = quantization_config .input_activation
13011289
13021290 node .meta [Q_ANNOTATION_KEY ] = QuantizationAnnotation (
13031291 input_qspec_map = input_qspec_map ,
1304- output_qspec = share_qparams_with_input_act0_qspec ,
1292+ output_qspec = quantization_config . output_activation ,
13051293 _annotated = True ,
13061294 )
13071295
@@ -1346,14 +1334,17 @@ def annotate_chunk(node: Node, quantization_config: QuantizationConfig) -> None:
13461334 assert isinstance (input_act , Node )
13471335 input_qspec_map [input_act ] = quantization_config .input_activation
13481336
1337+ share_qparams_with_input_node_qspec = SharedQuantizationSpec ((input_act , node ))
1338+ input_qspec_map [input_act ] = quantization_config .input_activation
1339+
13491340 node .meta [Q_ANNOTATION_KEY ] = QuantizationAnnotation (
13501341 input_qspec_map = input_qspec_map ,
13511342 _annotated = True ,
13521343 )
13531344
13541345 for user in node .users :
13551346 user .meta [Q_ANNOTATION_KEY ] = QuantizationAnnotation (
1356- output_qspec = quantization_config . output_activation ,
1347+ output_qspec = share_qparams_with_input_node_qspec ,
13571348 _annotated = True ,
13581349 )
13591350
0 commit comments