Transformers documentation
Извлекатель признаков
Извлекатель признаков
Функция-экстрактор отвечает за подготовку входных признаков для аудиомоделей. Это включает извлечение признаков из последовательностей, например, предобработку аудиофайлов для генерации признаков Log-Mel Spectrogram, а также преобразование в тензоры NumPy и PyTorch.
FeatureExtractionMixin
Это миксин для извлечения признаков, используемый для предоставления функциональности сохранения/загрузки для последовательных и аудиопризнаковых экстракторов.
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs )
Параметры
- pretrained_model_name_or_path (
strилиos.PathLike) — Это может быть:- строка, model id предобученного feature_extractor, размещенного в репозитории модели на huggingface.co.
- путь к каталогу, содержащему файл экстрактора признаков, сохранённый с помощью метода
save_pretrained(), например,
./my_model_directory/. - путь к сохранённому JSON-файлу экстрактора признаков, например,
./my_model_directory/preprocessor_config.json.
- cache_dir (
strилиos.PathLike, необязательный) — Путь к каталогу, в котором следует кэшировать загруженный предобученный экстрактор признаков модели, если стандартный кэш не используется. - force_download (
bool, необязательный, по умолчаниюFalse) — Следует ли принудительно (пере)скачивать файлы экстрактора признаков и заменять кэшированные версии, если они существуют. - proxies (
dict[str, str], необязательный) — Словарь прокси-серверов, используемых по протоколу или конечной точке, например,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}.Прокси применяются при каждом запросе. - token (
strилиbool, необязательный) — Токен, используемый в качестве HTTP bearer-авторизации для удалённых файлов. Если указаноTrueили параметр не задан, будет использован токен, сгенерированный при выполненииhf auth login(хранится в~/.huggingface). - revision (
str, необязательный, по умолчанию"main") — Конкретная версия модели, которую следует использовать. Это может быть имя ветки, имя тега или идентификатор коммита, поскольку для хранения моделей и других артефактов на huggingface.co используется система на базе git, поэтомуrevisionможет быть любым идентификатором, разрешённым git.
Создайте экземпляр типа FeatureExtractionMixin из экстрактора признаков, например производного класса SequenceFeatureExtractor.
Примеры:
# We can't instantiate directly the base class *FeatureExtractionMixin* nor *SequenceFeatureExtractor* so let's show the examples on a
# derived class: *Wav2Vec2FeatureExtractor*
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained(
"facebook/wav2vec2-base-960h"
) # Download feature_extraction_config from huggingface.co and cache.
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained(
"./test/saved_model/"
) # E.g. feature_extractor (or model) was saved using *save_pretrained('./test/saved_model/')*
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained("./test/saved_model/preprocessor_config.json")
feature_extractor = Wav2Vec2FeatureExtractor.from_pretrained(
"facebook/wav2vec2-base-960h", return_attention_mask=False, foo=False
)
assert feature_extractor.return_attention_mask is False
feature_extractor, unused_kwargs = Wav2Vec2FeatureExtractor.from_pretrained(
"facebook/wav2vec2-base-960h", return_attention_mask=False, foo=False, return_unused_kwargs=True
)
assert feature_extractor.return_attention_mask is False
assert unused_kwargs == {"foo": False}save_pretrained
< source >( save_directory: str | os.PathLikepush_to_hub: bool = False**kwargs )
Параметры
- save_directory (
strилиos.PathLike) — Каталог, в котором будет сохранён JSON-файл экстрактора признаков (будет создан, если не существует). - push_to_hub (
bool, необязательный, по умолчаниюFalse) — Указывает, следует ли после сохранения отправить вашу модель в Hugging Face model hub. С помощьюrepo_idможно указать репозиторий, в который нужно отправить модель (по умолчанию используется имяsave_directoryв вашем пространстве имён). - kwargs (
dict[str, Any], необязательный) — Дополнительные именованные аргументы, передаваемые в метод push_to_hub().
Сохраните объект feature_extractor в каталог save_directory, чтобы его можно было загрузить с помощью метода класса from_pretrained().
SequenceFeatureExtractor
класс transformers.SequenceFeatureExtractor
< source >( feature_size: intsampling_rate: intpadding_value: float**kwargs )
Это общий класс для извлечения признаков в задачах распознавания речи.
pad
< source >( processed_features: transformers.feature_extraction_utils.BatchFeature | list[transformers.feature_extraction_utils.BatchFeature] | dict[str, transformers.feature_extraction_utils.BatchFeature] | dict[str, list[transformers.feature_extraction_utils.BatchFeature]] | list[dict[str, transformers.feature_extraction_utils.BatchFeature]]padding: bool | str | transformers.utils.generic.PaddingStrategy = Truemax_length: int | None = Nonetruncation: bool = Falsepad_to_multiple_of: int | None = Nonereturn_attention_mask: bool | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = None )
Параметры
- processed_features (BatchFeature, список BatchFeature,
dict[str, list[float]],dict[str, list[list[float]]илиlist[dict[str, list[float]]]) — Обработанные входные данные. Могут представлять один входной объект (BatchFeature илиdict[str, list[float]]) или пакет входных значений/векторов (список BatchFeature, dict[str, list[list[float]]] или list[dict[str, list[float]]]) , поэтому этот метод можно использовать как на этапе предобработки, так и в функции collate для PyTorch Dataloader.Вместо
list[float]можно использовать тензоры (массивы numpy или тензоры PyTorch), см. примечание выше о типе возвращаемого значения. - padding (
bool,strили PaddingStrategy, необязательный, по умолчаниюTrue) — Выберите стратегию дополнения возвращаемых последовательностей (с учётом стороны дополнения и индекса дополнения модели) из следующих вариантов:Trueили'longest': дополнить до самой длинной последовательности в батче (или не дополнять, если предоставлена только одна последовательность).'max_length': Дополнить до максимальной длины, указанной аргументомmax_length, или до максимально допустимой длины входных данных для модели, если этот аргумент не указан.Falseили'do_not_pad'(по умолчанию): без дополнения нулями (т. е. может выводить батч с последовательностями разной длины).
- max_length (
int, необязательный) — Максимальная длина возвращаемого списка и, при необходимости, длина отступов (см. выше). - truncation (
bool) — Включает усечение, чтобы обрезать входные последовательности длиннееmax_lengthдоmax_length. - pad_to_multiple_of (
int, необязательный) — Если задано, последовательность будет дополнена до кратного указанного значения.Это особенно полезно для использования Tensor Cores на аппаратных средствах NVIDIA с вычислительной способностью
>= 7.5(Volta) или на TPU, где производительность повышается при длине последовательности, кратной 128. - return_attention_mask (
bool, необязательный) — Следует ли возвращать attention mask. Если значение не указано, будет возвращена attention mask в соответствии со значением по умолчанию для конкретного feature_extractor. - return_tensors (
strили TensorType, необязательный) — Если задано, возвращает тензоры вместо списка целых чисел Python. Допустимые значения:'pt': возвращает объектыtorch.TensorPyTorch.'np': возвращает объекты Numpynp.ndarray.
Добавление заполнителей к входным значениям / векторам или к батчу входных значений / векторов до заданной длины или до максимальной длины последовательности в батче.
Сторона выравнивания (слева/справа) и значения выравнивания определяются на уровне экстрактора признаков (с помощью self.padding_side, self.padding_value)
Если переданные
processed_featuresпредставляют собой словарь массивов numpy или тензоров PyTorch, результат будет использовать тот же тип, если только вы не укажете другой тип тензора с помощьюreturn_tensors. В случае тензоров PyTorch, однако, вы потеряете информацию об устройстве, на котором они были созданы.
BatchFeature
класс transformers.BatchFeature
< source >( data: dict[str, typing.Any] | None = Nonetensor_type: None | str | transformers.utils.generic.TensorType = Noneskip_tensor_conversion: list[str] | set[str] | None = None )
Параметры
- data (
dict, необязательный) — Словарь списков/массивов/тензоров, возвращаемый методами call/pad (‘input_values’, ‘attention_mask’, и т. д.). - tensor_type (
Union[None, str, TensorType], необязательный) — Здесь можно указать tensor_type, чтобы при инициализации преобразовать списки целых чисел в тензоры PyTorch/Numpy. - skip_tensor_conversion (
list[str]илиset[str], необязательный) — Список или множество ключей, которые НЕ следует преобразовывать в тензоры, даже если указанtensor_type.
Содержит результат методов pad() и специфичных для экстрактора признаков __call__.
Этот класс наследуется от словаря Python и может использоваться как словарь.
convert_to_tensors
< source >( tensor_type: str | transformers.utils.generic.TensorType | None = Noneskip_tensor_conversion: list[str] | set[str] | None = None )
Параметры
- tensor_type (
strили TensorType, необязательный) — Тип тензоров для использования. Еслиstr, должно быть одним из значений перечисления TensorType. ЕслиNone, изменения не вносятся. - skip_tensor_conversion (
list[str]илиset[str], необязательный) — Список или множество ключей, которые НЕ следует преобразовывать в тензоры, даже если указанtensor_type.
Преобразуйте внутреннее содержимое в тензоры.
Note: Значения, не имеющие структуры, подобной массиву (например, строки, словари, списки строк), автоматически пропускаются и не преобразуются в тензоры. Для неровных массивов (списков массивов различной длины) преобразование всё же выполняется, хотя в процессе могут возникать ошибки.
до
< source >( *args**kwargs ) → BatchFeature
Отправьте все значения на устройство, вызвав v.to(*args, **kwargs) (только PyTorch). Это должно поддерживать приведение к различным dtypes и отправку BatchFeature на другое device.
ImageFeatureExtractionMixin
Миксин, содержащий утилиты для подготовки признаков изображений.
center_crop
< source >( imagesize ) → new_image
Параметры
- image (
PIL.Image.Imageилиnp.ndarrayилиtorch.Tensorформы (n_channels, height, width) или (height, width, n_channels)) — Изображение, размер которого нужно изменить. - size (
intилиtuple[int, int]) — Размер, до которого нужно обрезать изображение.
Возвращает
new_image
Центрированный кроп PIL.Image.Image или np.ndarray или torch.Tensor со следующей формой: (n_channels,
height, width).
Обрезает image до заданного размера с помощью центральной обрезки. Обратите внимание, что если изображение слишком мало для обрезки до заданного размера, оно будет дополнено (так что возвращаемый результат будет иметь запрошенный размер).
convert_rgb
< source >( image )
Преобразует PIL.Image.Image в формат RGB.
expand_dims
< source >( image )
Расширяет двумерное image до трёх измерений.
flip_channel_order
< source >( image )
Меняет порядок каналов в image с RGB на BGR или наоборот. Обратите внимание, что если image является изображением PIL, это вызовет его преобразование в массив NumPy.
normalize
< source >( imagemeanstdrescale = False )
Параметры
- image (
PIL.Image.Imageилиnp.ndarrayилиtorch.Tensor) — Изображение для нормализации. - mean (
list[float]илиnp.ndarrayилиtorch.Tensor) — Среднее значение (по каналам), используемое для нормализации. - std (
list[float]илиnp.ndarrayилиtorch.Tensor) — Стандартное отклонение (по каждому каналу), используемое для нормализации. - rescale (
bool, необязательный, по умолчаниюFalse) — Указывает, нужно ли масштабировать изображение в диапазон от 0 до 1. Если передано изображение в формате PIL, масштабирование выполняется автоматически.
Нормализует image с использованием mean и std. Обратите внимание, что это вызовет преобразование image в массив NumPy, если это изображение PIL.
Масштабирование изображения numpy на заданный коэффициент
resize
< source >( imagesizeresample = Nonedefault_to_square = Truemax_size = None ) → image
Параметры
- image (
PIL.Image.Imageилиnp.ndarrayилиtorch.Tensor) — Изображение, размер которого нужно изменить. - size (
intилиtuple[int, int]) — Размер, используемый для изменения размера изображения. Еслиsizeявляется последовательностью вида (h, w), выходной размер будет соответствовать ей.Если
size— это int, аdefault_to_squareравноTrue, изображение будет изменено до размера (size, size). Еслиsize— это int, аdefault_to_squareравноFalse, меньшая сторона изображения будет приведена к этому значению. То есть, если высота > ширина, изображение будет масштабировано до (size * height / width, size). - resample (
int, необязательный, по умолчаниюPILImageResampling.BILINEAR) — Фильтр, используемый для ресемплинга. - default_to_square (
bool, необязательный, по умолчаниюTrue) — Способ преобразованияsize, если он задан одним целым числом. Если установлено значениеTrue,sizeбудет преобразован в квадрат (size,size). Если установлено значениеFalse, будет воспроизведено поведениеtorchvision.transforms.Resizeс поддержкой изменения размера только самой короткой стороны и необязательным параметромmax_size. - max_size (
int, необязательный, по умолчаниюNone) — Максимально допустимое значение для большей стороны изображения после изменения размера: если большая сторона изображения после изменения размера согласноsizeпревышаетmax_size, изображение снова изменяется по размеру так, чтобы большая сторона была равнаmax_size. В результатеsizeможет быть переопределено, то есть меньшая сторона может оказаться корочеsize. Используется только еслиdefault_to_squareравноFalse.
Возвращает
image
Изображение PIL.Image.Image с изменённым размером.
Изменяет размер image. Принудительно преобразует входные данные в PIL.Image.
rotate
< source >( imageangleresample = Noneexpand = 0center = Nonetranslate = Nonefillcolor = None ) → image
Возвращает повёрнутую копию image. Этот метод возвращает копию image, повёрнутую на заданное количество градусов против часовой стрелки вокруг её центра.
to_numpy_array
< source >( imagerescale = Nonechannel_first = True )
Параметры
- image (
PIL.Image.Imageилиnp.ndarrayилиtorch.Tensor) — Изображение, которое нужно преобразовать в массив NumPy. - rescale (
bool, необязательный) — Применять ли коэффициент масштабирования (чтобы значения пикселей стали числами с плавающей точкой в диапазоне от 0. до 1.). По умолчанию равноTrue, если изображение представлено как PIL Image или массив/тензор целых чисел, иFalseв противном случае. - channel_first (
bool, необязательный, по умолчаниюTrue) — Определяет, нужно ли переставлять измерения изображения, чтобы размерность канала шла первой.
Преобразует image в массив numpy. При необходимости выполняет масштабирование и перемещает размерность каналов на первое место.
to_pil_image
< source >( imagerescale = None )
Параметры
- image (
PIL.Image.Imageилиnumpy.ndarrayилиtorch.Tensor) — Изображение, которое нужно преобразовать в формат PIL Image. - rescale (
bool, необязательный) — Применять ли коэффициент масштабирования (чтобы значения пикселей были целыми числами от 0 до 255). По умолчаниюTrue, если тип изображения — с плавающей точкой, иначеFalse.
Преобразует image в изображение PIL. При необходимости выполняет масштабирование и возвращает размерность каналов в качестве последней оси.