Transformers documentation
Extracción de características
Extracción de características
Un extractor de características se encarga de preparar las características de entrada para los modelos de audio. Esto incluye la extracción de características de secuencias, por ejemplo, el preprocesamiento de archivos de audio para generar características de Espectrograma Log-Mel, y la conversión a tensores de NumPy y PyTorch.
FeatureExtractionMixin
Esta es una mezcla de extracción de características que se utiliza para proporcionar funcionalidad de guardado/carga para extractores de características secuenciales y de audio.
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 )
Parámetros
- pretrained_model_name_or_path (
stroos.PathLike) — Puede ser:- una cadena, el model id de un feature_extractor preentrenado alojado en un repositorio de modelos en huggingface.co.
- una ruta a un directorio que contenga un archivo de extractor de características guardado usando el método
save_pretrained(), por ejemplo,
./my_model_directory/. - una ruta a un archivo JSON de extractor de características guardado, archivo, p. ej.,
./my_model_directory/preprocessor_config.json.
- cache_dir (
stroos.PathLike, opcional) — Ruta a un directorio en el que se debe almacenar en caché el extractor de características de un modelo preentrenado descargado si no se debe utilizar la caché estándar. - force_download (
bool, opcional, valor predeterminadoFalse) — Indica si se debe forzar la (re)descarga de los archivos del extractor de características y sobrescribir las versiones en caché si existen. - proxies (
dict[str, str], opcional) — Un diccionario de servidores proxy a utilizar por protocolo o punto de acceso, p. ej.,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}.Los proxies se utilizan en cada solicitud. - token (
strobool, opcional) — El token que se usará como autorización HTTP bearer para archivos remotos. Si esTrue, o no se especifica, se usará el token generado al ejecutarhf auth login(almacenado en~/.huggingface). - revision (
str, opcional, valor predeterminado"main") — La versión específica del modelo que se va a utilizar. Puede ser el nombre de una rama, el nombre de una etiqueta o un id de commit, ya que utilizamos un sistema basado en git para almacenar modelos y otros artefactos en huggingface.co, por lo querevisionpuede ser cualquier identificador permitido por git.
Instancie un tipo de FeatureExtractionMixin a partir de un extractor de características, por ejemplo, una clase derivada de SequenceFeatureExtractor.
Ejemplos:
# 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 )
Parámetros
- save_directory (
stroos.PathLike) — Directorio donde se guardará el archivo JSON del extractor de características (se creará si no existe). - push_to_hub (
bool, opcional, valor predeterminadoFalse) — Indica si se debe subir el modelo al hub de modelos de Hugging Face después de guardarlo. Puedes especificar el repositorio al que deseas subirlo conrepo_id(por defecto, usará el nombre desave_directoryen tu espacio de nombres). - kwargs (
dict[str, Any], opcional) — Argumentos de palabra clave adicionales que se pasan al método push_to_hub().
Guarde un objeto feature_extractor en el directorio save_directory para que pueda recargarse mediante el método de clase from_pretrained().
SequenceFeatureExtractor
clase transformers.SequenceFeatureExtractor
< source >( feature_size: intsampling_rate: intpadding_value: float**kwargs )
Parámetros
- feature_size (
int) — La dimensión de las características de las características extraídas. - sampling_rate (
int) — La tasa de muestreo a la que deben digitalizarse los archivos de audio, expresada en hercios (Hz). - padding_value (
float) — El valor que se utiliza para rellenar los valores / vectores de relleno.
Esta es una clase general de extracción de características para el reconocimiento de voz.
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 )
Parámetros
- processed_features (BatchFeature, lista de BatchFeature,
dict[str, list[float]],dict[str, list[list[float]]olist[dict[str, list[float]]]) — Entradas procesadas. Puede representar una entrada (BatchFeature odict[str, list[float]]) o un lote de valores / vectores de entrada (lista de BatchFeature, dict[str, list[list[float]]] o list[dict[str, list[float]]]) de modo que puedes usar este método tanto durante el preprocesamiento como en una función de collate de un Dataloader de PyTorch.En lugar de
list[float]puede tener tensores (arrays de numpy o tensores de PyTorch), consulte la nota anterior sobre el tipo de retorno. - padding (
bool,stro PaddingStrategy, opcional, por defectoTrue) — Seleccione una estrategia para rellenar las secuencias devueltas (según el lado de relleno y el índice de relleno del modelo) entre:Trueo'longest': Rellena hasta la secuencia más larga del lote (o no aplica relleno si solo se proporciona una secuencia).'max_length': Rellena hasta una longitud máxima especificada con el argumentomax_lengtho hasta la longitud de entrada máxima aceptable para el modelo si no se proporciona dicho argumento.Falseo'do_not_pad'(predeterminado): Sin relleno (es decir, puede generar un lote con secuencias de diferentes longitudes).
- max_length (
int, opcional) — Longitud máxima de la lista devuelta y, opcionalmente, longitud de relleno (véase arriba). - truncation (
bool) — Activa la truncación para recortar las secuencias de entrada más largas quemax_lengthamax_length. - pad_to_multiple_of (
int, opcional) — Si se establece, rellenará la secuencia hasta un múltiplo del valor proporcionado.Esto resulta especialmente útil para habilitar el uso de Tensor Cores en hardware de NVIDIA con capacidad de cálculo
>= 7.5(Volta), o en TPUs, que se benefician de que las longitudes de secuencia sean un múltiplo de 128. - return_attention_mask (
bool, opcional) — Si se debe devolver la máscara de atención. Si se deja en el valor predeterminado, se devolverá la máscara de atención según el valor predeterminado del feature_extractor específico. - return_tensors (
stro TensorType, opcional) — Si se establece, devolverá tensores en lugar de una lista de enteros de Python. Los valores aceptables son:'pt': Devuelve objetostorch.Tensorde PyTorch.'np': Devuelve objetos Numpynp.ndarray.
Rellena los valores de entrada / vectores de entrada o un lote de valores de entrada / vectores de entrada hasta la longitud predefinida o hasta la longitud máxima de secuencia del lote.
Los valores de relleno (izquierda/derecha) se definen a nivel del extractor de características (con self.padding_side, self.padding_value)
Si las
processed_featurespasadas son un diccionario de arrays de numpy o tensores de PyTorch, el resultado usará el mismo tipo, a menos que proporciones un tipo de tensor diferente conreturn_tensors. En el caso de los tensores de PyTorch, sin embargo, perderás el dispositivo específico de tus tensores.
BatchFeature
clase 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 )
Parámetros
- data (
dict, opcional) — Diccionario de listas/arrays/tensores devueltos por los métodos call/pad (‘input_values’, ‘attention_mask’, etc.). - tensor_type (
Union[None, str, TensorType], opcional) — Puede indicar un tensor_type aquí para convertir las listas de enteros en Tensors de PyTorch/Numpy durante la inicialización. - skip_tensor_conversion (
list[str]oset[str], opcional) — Lista o conjunto de claves que NO deben convertirse en tensores, incluso cuando se especificatensor_type.
Contiene la salida de los métodos pad() y __call__ específicos del extractor de características.
Esta clase se deriva de un diccionario de Python y puede usarse como un diccionario.
convert_to_tensors
< source >( tensor_type: str | transformers.utils.generic.TensorType | None = Noneskip_tensor_conversion: list[str] | set[str] | None = None )
Parámetros
- tensor_type (
stro TensorType, opcional) — El tipo de tensores a utilizar. Si esstr, debe ser uno de los valores del enum TensorType. Si esNone, no se realiza ninguna modificación. - skip_tensor_conversion (
list[str]oset[str], opcional) — Lista o conjunto de claves que NO deben convertirse en tensores, incluso cuando se especificatensor_type.
Convierte el contenido interno en tensores.
Nota: Los valores que no tienen una estructura similar a un array (p. ej., cadenas, diccionarios, listas de cadenas) se omiten automáticamente y no se convierten en tensores. Se intenta convertir los arrays irregulares (listas de arrays con longitudes diferentes), aunque pueden generar errores durante la conversión.
hasta
< source >( *args**kwargs ) → BatchFeature
Parámetros
- args (
Tuple) — Se pasará a la funciónto(...)de los tensores. - kwargs (
Dict, opcional) — Se pasará a la funciónto(...)de los tensores. Para habilitar la transferencia de datos asíncrona, establezca la banderanon_blockingenkwargs(el valor predeterminado esFalse).
Devuelve
La misma instancia después de la modificación.
Envía todos los valores al dispositivo llamando a v.to(*args, **kwargs) (solo PyTorch). Esto debería admitir el cambio a diferentes dtypes y enviar el BatchFeature a un device diferente.
ImageFeatureExtractionMixin
Mixin que contiene utilidades para preparar características de imagen.
center_crop
< source >( imagesize ) → new_image
Parámetros
- image (
PIL.Image.Imageonp.ndarrayotorch.Tensorde forma (n_channels, height, width) o (height, width, n_channels)) — La imagen que se debe redimensionar. - size (
intotuple[int, int]) — El tamaño al que recortar la imagen.
Devuelve
new_image
Un PIL.Image.Image o np.ndarray o torch.Tensor recortado al centro de forma: (n_channels,
height, width).
Recorta la image al tamaño indicado mediante un recorte central. Ten en cuenta que si la imagen es demasiado pequeña para recortarla al tamaño indicado, se rellenará (de modo que el resultado devuelto tenga el tamaño solicitado).
Convierte PIL.Image.Image al formato RGB.
expand_dims
< source >( image )
Expande la image de 2 dimensiones a 3 dimensiones.
flip_channel_order
< source >( image )
Flips the channel order of image from RGB to BGR, or vice versa. Note that this will trigger a conversion of image to a NumPy array if it’s a PIL Image.
normalize
< source >( imagemeanstdrescale = False )
Parámetros
- image (
PIL.Image.Imageonp.ndarrayotorch.Tensor) — La imagen a normalizar. - mean (
list[float]onp.ndarrayotorch.Tensor) — La media (por canal) a utilizar para la normalización. - std (
list[float]onp.ndarrayotorch.Tensor) — La desviación estándar (por canal) que se utilizará para la normalización. - rescale (
bool, opcional, valor predeterminadoFalse) — Indica si se debe reescalar la imagen para que esté entre 0 y 1. Si se proporciona una imagen PIL, el reescalado se realizará automáticamente.
Normalizes image with mean and std. Note that this will trigger a conversion of image to a NumPy array
if it’s a PIL Image.
Escalar una imagen de numpy por una cantidad de escala
resize
< source >( imagesizeresample = Nonedefault_to_square = Truemax_size = None ) → image
Parámetros
- image (
PIL.Image.Imageonp.ndarrayotorch.Tensor) — La imagen que se debe redimensionar. - size (
intotuple[int, int]) — El tamaño que se usará para redimensionar la imagen. Sisizees una secuencia como (h, w), el tamaño de salida se ajustará a este valor.Si
sizees un int ydefault_to_squareesTrue, la imagen se redimensionará a (size, size). Sisizees un int ydefault_to_squareesFalse, el lado más corto de la imagen se ajustará a este número. Es decir, si height > width, la imagen se reescalará a (size * height / width, size). - resample (
int, opcional, valor predeterminadoPILImageResampling.BILINEAR) — El filtro que se usa para el remuestreo. - default_to_square (
bool, opcional, valor predeterminadoTrue) — Cómo convertirsizecuando es un solo int. Si se establece enTrue,sizese convertirá en un cuadrado (size,size). Si se establece enFalse, replicarátorchvision.transforms.Resizecon soporte para redimensionar solo el borde más pequeño y proporcionando unmax_sizeopcional. - max_size (
int, opcional, valor predeterminadoNone) — El valor máximo permitido para el lado más largo de la imagen redimensionada: si el lado más largo de la imagen es mayor quemax_sizedespués de ser redimensionada segúnsize, la imagen se redimensiona de nuevo para que el lado más largo sea igual amax_size. Como resultado,sizepuede verse anulado, es decir, el lado más corto puede ser más corto quesize. Solo se utiliza sidefault_to_squareesFalse.
Devuelve
image
Una PIL.Image.Image redimensionada.
Redimensiona image. Fuerza la conversión de la entrada a PIL.Image.
rotate
< source >( imageangleresample = Noneexpand = 0center = Nonetranslate = Nonefillcolor = None ) → image
Devuelve una copia rotada de image. Este método devuelve una copia de image, rotada el número de grados indicado en sentido antihorario alrededor de su centro.
to_numpy_array
< source >( imagerescale = Nonechannel_first = True )
Parámetros
- image (
PIL.Image.Imageonp.ndarrayotorch.Tensor) — La imagen que se convertirá en un array de NumPy. - rescale (
bool, opcional) — Indica si se debe aplicar el factor de escalado (para que los valores de píxeles sean flotantes entre 0. y 1.). Por defecto seráTruesi la imagen es una imagen PIL o un array/tensor de enteros, yFalseen caso contrario. - channel_first (
bool, opcional, valor predeterminadoTrue) — Si se deben o no permutar las dimensiones de la imagen para colocar la dimensión de canal al principio.
Convierte image en un array de numpy. Opcionalmente, lo reescala y coloca la dimensión de canal como la primera dimensión.
to_pil_image
< source >( imagerescale = None )
Parámetros
- image (
PIL.Image.Imageonumpy.ndarrayotorch.Tensor) — La imagen que se convertirá al formato PIL Image. - rescale (
bool, opcional) — Indica si se debe aplicar el factor de escala (para que los valores de píxeles sean enteros entre 0 y 255). El valor predeterminado seráTruesi el tipo de imagen es de punto flotante, yFalseen caso contrario.
Converts image to a PIL Image. Optionally rescales it and puts the channel dimension back as the last axis if
needed.