code: def test_sam_semantic_segmentation_non_additive_peft_methods(
      peft_method,
  ):
      # Binary semantic segmentation
      train_df, val_df, test_df = get_file_df_binary_semantic_seg(
          need_test_gt=True
      )
  
      validation_metric = "iou"
      predictor = MultiModalPredictor(
          problem_type="semantic_segmentation",
          validation_metric=validation_metric,
          eval_metric=validation_metric,
          hyperparameters={
              "model.sam.checkpoint_name": "facebook/sam-vit-base",
              "optimization.efficient_finetune": peft_method,
          },
          label="label",
          sample_data_path=train_df,
      )
  
      # Fit
      predictor.fit(
          train_data=train_df, tuning_data=val_df, time_limit=20
      )
  
      # Evaluation
      predictor.evaluate(test_df, metrics=[validation_metric])
  
      # Predict, save and load
      verify_predictor_save_load_for_semantic_seg(
          predictor, test_df, as_multiclass=False
      )
  
imports: import os
  import shutil
  import uuid
  import numpy
  import numpy.testing
  import pandas
  import pytest
  import torch
  from autogluon.core.utils.loaders import load_zip
  from autogluon.multimodal import MultiModalPredictor
label_desc: Use image node_id 13 for calling a global function with example usage: test_sam_semantic_segmentation_non_additive_peft_methods(peft_method) without return types