vision_unlearning.benchmarks.I_care.metadata ============================================ .. py:module:: vision_unlearning.benchmarks.I_care.metadata Attributes ---------- .. autoapisummary:: vision_unlearning.benchmarks.I_care.metadata.logger Classes ------- .. autoapisummary:: vision_unlearning.benchmarks.I_care.metadata.InterferencePerEntity Functions --------- .. autoapisummary:: vision_unlearning.benchmarks.I_care.metadata.get_interference_per_pair_path vision_unlearning.benchmarks.I_care.metadata.get_interference_per_pair vision_unlearning.benchmarks.I_care.metadata.exists_interference_per_pair vision_unlearning.benchmarks.I_care.metadata.save_interference_per_pair vision_unlearning.benchmarks.I_care.metadata.get_interference_per_pair_inverse vision_unlearning.benchmarks.I_care.metadata.get_interference_per_entity_path vision_unlearning.benchmarks.I_care.metadata.get_interference_per_entity vision_unlearning.benchmarks.I_care.metadata.save_interference_per_entity vision_unlearning.benchmarks.I_care.metadata.choose_metric_column_interference_per_entity Module Contents --------------- .. py:data:: logger .. py:function:: get_interference_per_pair_path(task: Literal['scenes', 'objects', 'breeds', 'people'], index: int, method: Literal['munba', 'uce', 'distil'], num_train_epochs: int, base_folder: str = 'assets') -> str .. py:function:: get_interference_per_pair(task: Literal['scenes', 'objects', 'breeds', 'people'], index: int, method: Literal['munba', 'uce', 'distil'], num_train_epochs: int, max_identities: int = 100, base_folder: str = 'assets') -> Dict[str, Dict[str, float]] .. py:function:: exists_interference_per_pair(task: Literal['scenes', 'objects', 'breeds', 'people'], index: int, method: Literal['munba', 'uce', 'distil'], num_train_epochs: int, base_folder: str = 'assets') -> bool .. py:function:: save_interference_per_pair(interference_per_pair: Dict[str, Dict[str, float]], task: Literal['scenes', 'objects', 'breeds', 'people'], index: int, method: Literal['munba', 'uce', 'distil'], num_train_epochs: int, base_folder: str = 'assets') -> None .. py:function:: get_interference_per_pair_inverse(task: Literal['scenes', 'objects', 'breeds', 'people'], index: int, method: Literal['munba', 'uce', 'distil'], num_train_epochs: int, index_start: int = 0, max_identities: int = 100) -> Dict[str, Dict[str, float]] .. py:function:: get_interference_per_entity_path(task: Literal['scenes', 'objects', 'breeds', 'people'], base_folder: str = 'assets') -> str .. py:function:: get_interference_per_entity(task: Literal['scenes', 'objects', 'breeds', 'people'], max_identities: int = 100, base_folder: str = 'assets') -> List[Dict[str, Any]] .. py:function:: save_interference_per_entity(task: Literal['scenes', 'objects', 'breeds', 'people'], metadata_filtered: List[Dict[str, Any]], base_folder: str = 'assets') -> None .. py:class:: InterferencePerEntity(/, **data: Any) Bases: :py:obj:`pydantic.BaseModel` !!! abstract "Usage Documentation" [Models](../concepts/models.md) A base class for creating Pydantic models. .. attribute:: __class_vars__ The names of the class variables defined on the model. .. attribute:: __private_attributes__ Metadata about the private attributes of the model. .. attribute:: __signature__ The synthesized `__init__` [`Signature`][inspect.Signature] of the model. .. attribute:: __pydantic_complete__ Whether model building is completed, or if there are still undefined fields. .. attribute:: __pydantic_core_schema__ The core schema of the model. .. attribute:: __pydantic_custom_init__ Whether the model has a custom `__init__` function. .. attribute:: __pydantic_decorators__ Metadata containing the decorators defined on the model. This replaces `Model.__validators__` and `Model.__root_validators__` from Pydantic V1. .. attribute:: __pydantic_generic_metadata__ A dictionary containing metadata about generic Pydantic models. The `origin` and `args` items map to the [`__origin__`][genericalias.__origin__] and [`__args__`][genericalias.__args__] attributes of [generic aliases][types-genericalias], and the `parameter` item maps to the `__parameter__` attribute of generic classes. .. attribute:: __pydantic_parent_namespace__ Parent namespace of the model, used for automatic rebuilding of models. .. attribute:: __pydantic_post_init__ The name of the post-init method for the model, if defined. .. attribute:: __pydantic_root_model__ Whether the model is a [`RootModel`][pydantic.root_model.RootModel]. .. attribute:: __pydantic_serializer__ The `pydantic-core` `SchemaSerializer` used to dump instances of the model. .. attribute:: __pydantic_validator__ The `pydantic-core` `SchemaValidator` used to validate instances of the model. .. attribute:: __pydantic_fields__ A dictionary of field names and their corresponding [`FieldInfo`][pydantic.fields.FieldInfo] objects. .. attribute:: __pydantic_computed_fields__ A dictionary of computed field names and their corresponding [`ComputedFieldInfo`][pydantic.fields.ComputedFieldInfo] objects. .. attribute:: __pydantic_extra__ A dictionary containing extra values, if [`extra`][pydantic.config.ConfigDict.extra] is set to `'allow'`. .. attribute:: __pydantic_fields_set__ The names of fields explicitly set during instantiation. .. attribute:: __pydantic_private__ Values of private attributes set on the model instance. .. py:attribute:: task :type: vision_unlearning.benchmarks.I_care.configuration.type_task :value: 'people' .. py:attribute:: base_folder :type: str :value: 'assets' .. py:attribute:: remote_repository_name :type: str :value: 'LeonardoBenitez/VisionUnlearningEvaluationTestbeds' .. py:attribute:: save_outputs :type: bool :value: True .. py:attribute:: recompute_if_exists :type: bool :value: False .. py:method:: _get_data_path_remote() -> str .. py:method:: _get_data_path_local() -> str .. py:method:: compute() -> List[Dict[str, Any]] .. py:function:: choose_metric_column_interference_per_entity(unlearning_algorithm: vision_unlearning.benchmarks.I_care.configuration.type_unlearning_algorithm, interference_entity: vision_unlearning.benchmarks.I_care.configuration.type_me, metric_cols: List[str]) -> str The columns of the interference per entity file are not named in a way that is easy to generate given `unlearning_algorithm` and `interference_entity`, so we need to search for the right one. We assume there is only one match, and we assert it. If there are no matches or more than one match, we raise an error. The names look like this: 'metric_distil_400_emitter_minus_receiver_worst_interfered_ssim (↓)', 'metric_distil_400_emitter_minus_receiver_number_of_interfered_worse_than_target_brisque_diff (↓)', 'metric_distil_400_emitter_minus_receiver_number_of_interfered_worse_than_target_clip_diff (↓)', 'metric_distil_400_emitter_minus_receiver_number_of_interfered_worse_than_target_rmse (↓)', 'metric_distil_400_emitter_minus_receiver_number_of_interfered_worse_than_target_ssim (↓)', 'metric_distil_400_emitter_minus_receiver_number_of_interfered_worse_than_zero_clip_diff (↓)', 'metric_distil_400_emitter_minus_receiver_average_brisque_diff (↓)', 'metric_distil_400_emitter_minus_receiver_average_clip_diff (↑)', 'metric_uce_000_emitter_minus_receiver_average_rmse (↓)', 'metric_munba_100_emitter_minus_receiver_average_ssim (↑)', TODO: these names are defined in `4. Compute interference per entity.ipynb`. There should be a central way of defining them.