def create(model_name: str = None, model: Union[str, ImageModel] = None, folder_path: str = None, dataset_name: str = None, dataset: Union[str, ImageSet] = None, config: Config = config, class_dict: dict[str, type[ImageModel]] = class_dict, **kwargs) -> ImageModel: dataset_name = get_name(name=dataset_name, module=dataset, arg_list=['-d', '--dataset']) model_name = get_name(name=model_name, module=model, arg_list=['-m', '--model']) if dataset_name is None: dataset_name = config.get_full_config()['dataset']['default_dataset'] if model_name is None: model_name = config.get_config( dataset_name=dataset_name)['model']['default_model'] result = config.get_config( dataset_name=dataset_name)['model']._update(kwargs) model_name = model_name if model_name is not None else result[ 'default_model'] ModelType: type[ImageModel] = class_dict[get_model_class(model_name)] if folder_path is None and isinstance(dataset, ImageSet): folder_path = os.path.join(result['model_dir'], dataset.data_type, dataset.name) return ModelType(name=model_name, dataset=dataset, folder_path=folder_path, **result)
def create(mark_path: str = None, data_shape: list[int] = None, dataset_name: str = None, dataset: str | ImageSet = None, config: Config = config, **kwargs) -> Watermark: r""" | Create a watermark instance. | For arguments not included in :attr:`kwargs`, use the default values in :attr:`config`. | For watermark implementation, see :class:`Watermark`. Args: mark_path (str): | Path to watermark image or npy file. There are some preset marks in the package. | Defaults to ``'square_white.png'``. data_shape (list[int]): The shape of image data ``[C, H, W]``. dataset_name (str): The dataset name. dataset (str): The alias of `dataset_name`. config (Config): The default parameter config. **kwargs: Keyword arguments passed to dataset init method. Returns: Watermark: Watermark instance. """ if data_shape is None: assert isinstance(dataset, ImageSet), 'Please specify data_shape or dataset' data_shape = dataset.data_shape if dataset_name is None and dataset is not None: dataset_name = dataset.name result = config.get_config(dataset_name=dataset_name)[ 'mark'].update(kwargs).update(mark_path=mark_path) return Watermark(data_shape=data_shape, **result)
def create(model_name: str = None, model: Union[str, ImageModel] = None, layer: int = None, dataset_name: str = None, dataset: Union[str, ImageSet] = None, config: Config = config, class_dict: dict[str, type[ImageModel]] = class_dict, **kwargs) -> ImageModel: dataset_name = get_name(name=dataset_name, module=dataset, arg_list=['-d', '--dataset']) if dataset_name is None: dataset_name = config.get_full_config()['dataset']['default_dataset'] model_name = get_name(name=model_name, module=model, arg_list=['-m', '--model']) if model_name is None: model_name = config.get_config( dataset_name=dataset_name)['model']['default_model'] model_name, layer = split_name(model_name, layer=layer) return trojanzoo.models.create(model_name=model_name, model=model, dataset_name=dataset_name, dataset=dataset, config=config, class_dict=class_dict, layer=layer, **kwargs)
def create(data_shape=None, dataset_name: str = None, dataset: ImageSet = None, config: Config = config, **kwargs): if data_shape is None: assert isinstance(dataset, ImageSet) data_shape: list = [dataset.n_channel] data_shape.extend(dataset.n_dim) if dataset_name is None and dataset is not None: dataset_name = dataset.name result = config.get_config(dataset_name=dataset_name)['mark']._update(kwargs) return Watermark(data_shape=data_shape, **result)
def create(mark_path: str = None, data_shape: list[int] = None, dataset_name: str = None, dataset: ImageSet = None, config: Config = config, **kwargs): if data_shape is None: assert isinstance(dataset, ImageSet) data_shape = dataset.data_shape if dataset_name is None and dataset is not None: dataset_name = dataset.name result = config.get_config( dataset_name=dataset_name)['mark']._update(kwargs) result.update(mark_path=mark_path) return Watermark(data_shape=data_shape, **result)
def add_argument( parser: argparse.ArgumentParser, model_name: str = None, model: Union[str, ImageModel] = None, config: Config = config, class_dict: dict[str, type[ImageModel]] = class_dict ) -> argparse._ArgumentGroup: dataset_name = get_name(arg_list=['-d', '--dataset']) if dataset_name is None: dataset_name = config.get_full_config()['dataset']['default_dataset'] model_name = get_name(name=model_name, module=model, arg_list=['-m', '--model']) if model_name is None: model_name = config.get_config( dataset_name=dataset_name)['model']['default_model'] model_name = get_model_class(model_name) return trojanzoo.models.add_argument(parser=parser, model_name=model_name, model=model, config=config, class_dict=class_dict)