class_docstr: Remove fixed parameters.
  
  Fixed parameters should not be included in the SearchSpace.
  This transform removes these parameters, leaving only tunable parameters.
  
  Transform is done in-place for observation features.
class_docstr_tok: ["Remove","fixed","parameters",".","Fixed","parameters","should","not","be","included","in","the","SearchSpace",".","This","transform","removes","these","parameters",",","leaving","only","tunable","parameters",".","Transform","is","done","in-place","for","observation","features","."]
code: def transform_observation_features(
      self, observation_features: List[ObservationFeatures]
  ) -> List[ObservationFeatures]:
      for obsf in observation_features:
          for p_name, fixed_p in self.fixed_parameters.items():
              if p_name in obsf.parameters:
                  if obsf.parameters[p_name] != fixed_p.value:
                      raise ValueError(
                          f"Fixed parameter {p_name} with out of design value: "
                          f"{obsf.parameters[p_name]} passed to `RemoveFixed`."
                      )
                  obsf.parameters.pop(p_name)
      return observation_features
  
file_path: Ax/ax/modelbridge/transforms/remove_fixed.py
imports: from typing import Dict, List, Optional, TYPE_CHECKING, Union
  from ax.core.observation import Observation, ObservationFeatures
  from ax.core.parameter import ChoiceParameter, FixedParameter, RangeParameter
  from ax.core.search_space import SearchSpace
  from ax.modelbridge.transforms.base import Transform
  from ax.modelbridge.transforms.utils import construct_new_search_space
  from ax.models.types import TConfig
label_desc: Use image node_id 2 for calling the RemoveFixed obj's underlying member method code with example usage: obj.transform_observation_features(observation_features) and returns: observation_features