vision_unlearning.benchmarks.I_care.metadata
Attributes
Classes
!!! abstract "Usage Documentation" |
Functions
|
|
|
|
|
|
|
|
|
|
|
|
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. |
Module Contents
- vision_unlearning.benchmarks.I_care.metadata.logger
- vision_unlearning.benchmarks.I_care.metadata.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
- vision_unlearning.benchmarks.I_care.metadata.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]]
- vision_unlearning.benchmarks.I_care.metadata.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
- vision_unlearning.benchmarks.I_care.metadata.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
- vision_unlearning.benchmarks.I_care.metadata.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, base_folder: str = 'assets') Dict[str, Dict[str, float]]
- vision_unlearning.benchmarks.I_care.metadata.get_interference_per_entity_path(task: Literal['scenes', 'objects', 'breeds', 'people'], base_folder: str = 'assets') str
- vision_unlearning.benchmarks.I_care.metadata.get_interference_per_entity(task: Literal['scenes', 'objects', 'breeds', 'people'], max_identities: int = 100, base_folder: str = 'assets') List[Dict[str, Any]]
- vision_unlearning.benchmarks.I_care.metadata.save_interference_per_entity(task: Literal['scenes', 'objects', 'breeds', 'people'], metadata_filtered: List[Dict[str, Any]], base_folder: str = 'assets') None
- class vision_unlearning.benchmarks.I_care.metadata.InterferencePerEntity(/, **data: Any)
Bases:
pydantic.BaseModel- !!! abstract “Usage Documentation”
[Models](../concepts/models.md)
A base class for creating Pydantic models.
- __class_vars__
The names of the class variables defined on the model.
- __private_attributes__
Metadata about the private attributes of the model.
- __signature__
The synthesized __init__ [Signature][inspect.Signature] of the model.
- __pydantic_complete__
Whether model building is completed, or if there are still undefined fields.
- __pydantic_core_schema__
The core schema of the model.
- __pydantic_custom_init__
Whether the model has a custom __init__ function.
- __pydantic_decorators__
Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.
- __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.
- __pydantic_parent_namespace__
Parent namespace of the model, used for automatic rebuilding of models.
- __pydantic_post_init__
The name of the post-init method for the model, if defined.
- __pydantic_root_model__
Whether the model is a [RootModel][pydantic.root_model.RootModel].
- __pydantic_serializer__
The pydantic-core SchemaSerializer used to dump instances of the model.
- __pydantic_validator__
The pydantic-core SchemaValidator used to validate instances of the model.
- __pydantic_fields__
A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
- __pydantic_computed_fields__
A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
- __pydantic_extra__
A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to ‘allow’.
- __pydantic_fields_set__
The names of fields explicitly set during instantiation.
- __pydantic_private__
Values of private attributes set on the model instance.
- task: vision_unlearning.benchmarks.I_care.configuration.type_task = 'people'
- base_folder: str = 'assets'
- remote_repository_name: str = 'LeonardoBenitez/VisionUnlearningEvaluationTestbeds'
- save_outputs: bool = True
- recompute_if_exists: bool = False
- upload_if_recomputed: bool = False
- _get_data_path_remote() str
- _get_data_path_local() str
- abstract _compute_from_scratch() List[Dict[str, Any]]
- compute() List[Dict[str, Any]]
- vision_unlearning.benchmarks.I_care.metadata.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.