{"record":{"id":"ed17d1a2fd9b5413","repo":"tensorflow/models","slug":"only-support-mosaicencoderblock-for-encoder","errorCode":null,"errorMessage":"Only support MosaicEncoderBlock for encoder.","messagePattern":"Only support MosaicEncoderBlock for encoder\\.","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"official/projects/mosaic/qat/modeling/factory.py","lineNumber":67,"sourceCode":"    status.expect_partial().assert_existing_objects_matched()\n\n  scope_dict = {\n      'L2': tf_keras.regularizers.l2,\n  }\n\n  model.use_legacy_config = True  # Ensures old Keras serialization format\n  # Apply QAT to backbone (a tf_keras.Model) first, and then neck and head.\n  with tfmot.quantization.keras.quantize_scope(scope_dict):\n    annotated_backbone = tfmot.quantization.keras.quantize_annotate_model(\n        model.backbone)\n    optimized_backbone = tfmot.quantization.keras.quantize_apply(\n        annotated_backbone, scheme=schemes.Default8BitQuantizeScheme())\n\n    # Check for valid encoder and head.\n    if not isinstance(model.head, mosaic_head.MosaicDecoderHead):\n      raise ValueError('Only support MosaicDecoderHead for head.')\n    if not isinstance(model.neck, mosaic_blocks.MosaicEncoderBlock):\n      raise ValueError('Only support MosaicEncoderBlock for encoder.')\n\n    head = qat_mosaic_head.MosaicDecoderHeadQuantized.from_config(\n        model.head.get_config())\n    neck = qat_nn_blocks.MosaicEncoderBlockQuantized.from_config(\n        model.neck.get_config())\n\n    mask_scoring_head = None\n    if model.mask_scoring_head is not None:\n      mask_scoring_head = qat_nn_layers.MaskScoringQuantized.from_config(\n          model.mask_scoring_head.get_config()\n      )\n\n  optimized_model = mosaic_model.MosaicSegmentationModel(\n      backbone=optimized_backbone,\n      head=head,\n      neck=neck,\n      mask_scoring_head=mask_scoring_head,\n  )","sourceCodeStart":49,"sourceCodeEnd":85,"githubUrl":"https://github.com/tensorflow/models/blob/e006f5f0d534913e49c1f1dae87364039fa607e2/official/projects/mosaic/qat/modeling/factory.py#L49-L85","documentation":"Error \"Only support MosaicEncoderBlock for encoder.\" thrown in tensorflow/models.","triggerScenarios":"Thrown at official/projects/mosaic/qat/modeling/factory.py:67 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e006f5f0d534913e49c1f1dae87364039fa607e2","analyzedAt":"2026-08-24T14:09:15.576Z","schemaVersion":2},"datasetVersion":"2026-08-24T17:17:21.512Z"}