Manual de referencia de Pytorch torch
El paquete de software PyTorch contiene estructuras de datos para tensores multidimensionales y define operaciones matemáticas que se ejecutan sobre estos tensores. Además, proporciona muchas utilidades para serializar eficientemente tensores y datos de cualquier tipo, así como otras herramientas útiles.
También tiene una versión CUDA que te permite ejecutar cálculos con tensores en GPUs NVIDIA con capacidad de cómputo >= 3.0.
Manual de API de PyTorch torch
Comprobación de tipos de tensores
| Función | Descripción |
|---|---|
torch.is_tensor(obj) |
Comprobarobjsi es un tensor de PyTorch. |
torch.is_storage(obj) |
Comprobarobjsi es un objeto Storage de PyTorch. |
torch.is_complex(input) |
Comprobarinputsi el tipo de datos es un tipo de datos complejo. |
torch.is_conj(input) |
Comprobarinputsi es un tensor conjugado. |
torch.is_floating_point(input) |
Comprobarinputsi el tipo de datos es un tipo de datos de coma flotante. |
torch.is_nonzero(input) |
Comprobarinputsi es un tensor de un solo elemento distinto de cero. |
torch.set_default_dtype(d) |
Establecer el tipo de datos de coma flotante predeterminado ad。 |
torch.get_default_dtype() |
Obtener el tipo de coma flotante predeterminado actualtorch.dtype。 |
torch.set_default_device(device) |
Establecer el predeterminadotorch.Tensorel dispositivo asignado adevice。 |
torch.get_default_device() |
Obtener el predeterminadotorch.Tensordispositivo asignado. |
torch.set_default_tensor_type(tensor_type) |
Establecer el tipo de tensor predeterminado atensor_type。 |
torch.numel(input) |
Devuelveinputel número total de elementos en el tensor. |
torch.set_printoptions(...) |
Establece las opciones de impresión de tensores. |
Creación de tensores
| Función | Descripción |
|---|---|
torch.tensor(data, dtype, device, requires_grad) |
Crea un tensor a partir de datos, copiando los datos, sin historial de autograd. |
torch.as_tensor(data, dtype, device) |
Convierte los datos a un tensor, compartiendo los datos y conservando el historial de autograd. |
torch.asarray(data, dtype, device) |
Convierte los datos en un tensor (array). |
torch.from_numpy(ndarray) |
Crea un tensor a partir de un array de NumPy (memoria compartida). |
torch.from_dlpack(ext_tensor) |
Crea un tensor de PyTorch a partir de un tensor dlpack. |
torch.frombuffer(buffer, dtype, count, offset) |
Crea un tensor unidimensional a partir de un buffer. |
torch.zeros(*size, dtype, device, requires_grad) |
Crea un tensor de ceros. |
torch.zeros_like(input, dtype, device, requires_grad) |
Crea un tensor de ceros con la misma forma que la entrada. |
torch.ones(*size, dtype, device, requires_grad) |
Crea un tensor de unos. |
torch.ones_like(input, dtype, device, requires_grad) |
Crea un tensor de unos con la misma forma que la entrada. |
torch.empty(*size, dtype, device, requires_grad) |
Crea un tensor no inicializado. |
torch.empty_like(input, dtype, device, requires_grad) |
Crea un tensor no inicializado con la misma forma que la entrada. |
torch.empty_strided(size, stride, dtype, device) |
Crea un tensor no inicializado con el stride especificado. |
torch.arange(start, end, step, dtype, device, requires_grad) |
Crea un tensor con una progresión aritmética. |
torch.range(start, end, step, dtype, device, requires_grad) |
Crea un tensor con una progresión aritmética que incluye el valor end. |
torch.linspace(start, end, steps, dtype, device, requires_grad) |
Crea un tensor con una secuencia de espaciado uniforme. |
torch.logspace(start, end, steps, base, dtype, device, requires_grad) |
Crea un tensor con una secuencia de espaciado logarítmico. |
torch.eye(n, m, dtype, device, requires_grad) |
Crea una matriz identidad. |
torch.full(size, fill_value, dtype, device, requires_grad) |
Crea un tensor rellenado con el valor especificado. |
torch.full_like(input, fill_value, dtype, device, requires_grad) |
Crea un tensor rellenado con la misma forma que la entrada. |
torch.rand(*size, dtype, device, requires_grad) |
Crea un tensor aleatorio de distribución uniforme (rango [0, 1)). |
torch.rand_like(input, dtype, device, requires_grad) |
Crea un tensor aleatorio de distribución uniforme con la misma forma que la entrada. |
torch.randn(*size, dtype, device, requires_grad) |
Crea un tensor aleatorio de distribución normal estándar. |
torch.randn_like(input, dtype, device, requires_grad) |
Crea un tensor aleatorio de distribución normal estándar con la misma forma que la entrada. |
torch.randint(low, high, size, dtype, device, requires_grad) |
Crea un tensor de enteros aleatorios. |
torch.randint_like(input, low, high, dtype, device, requires_grad) |
Crea un tensor de enteros aleatorios con la misma forma que la entrada. |
torch.randperm(n, dtype, device, requires_grad) |
Crea una permutación aleatoria de 0 a n-1. |
torch.sparse_coo_tensor(indices, values, size, dtype, device, requires_grad) |
En las posiciones especificadasindicesconstruye un tensor disperso COO. |
torch.sparse_csr_tensor(crow_indices, col_indices, values, size, dtype, device) |
Construye un tensor disperso CSR. |
torch.sparse_csc_tensor(ccol_indices, row_indices, values, size, dtype, device) |
Construye un tensor disperso CSC. |
torch.quantize_per_tensor(input, scale, zero_point, dtype) |
Crea un tensor cuantizado (per-tensor). |
torch.quantize_per_channel(input, scales, zero_points, axis, dtype) |
Crea un tensor cuantizado (per-channel). |
torch.dequantize(input) |
Descuantifica un tensor. |
torch.complex(real, imag) |
Crea un tensor complejo a partir de la parte real y la parte imaginaria. |
torch.polar(abs, angle) |
Crea un tensor complejo a partir de coordenadas polares. |
torch.heaviside(input, values) |
Calcula la función escalón de Heaviside. |
Operaciones de indexado, rebanado, concatenación y mutación
| Función | Descripción |
|---|---|
torch.cat(tensors, dim, out) |
Concatena tensores a lo largo de la dimensión especificada. |
torch.concat(tensors, dim, out) |
Concatena tensores a lo largo de la dimensión especificada (igual que cat). |
torch.concatenate(tensors, dim, out) |
Concatena tensores a lo largo de la dimensión especificada (igual que cat). |
torch.stack(tensors, dim, out) |
Apila tensores a lo largo de una nueva dimensión. |
torch.split(tensor, split_size, dim) |
Divide los tensores a lo largo de la dimensión especificada. |
torch.chunk(tensor, chunks, dim) |
Divide el tensor en bloques a lo largo de la dimensión especificada. |
torch.reshape(input, shape) |
Cambia la forma del tensor. |
torch.transpose(input, dim0, dim1) |
Intercambia dos dimensiones del tensor. |
torch.t(input) |
Transpone un tensor bidimensional. |
torch.squeeze(input, dim) |
Elimina las dimensiones de tamaño 1. |
torch.unsqueeze(input, dim) |
Inserta una dimensión de tamaño 1 en la posición especificada. |
torch.permute(input, dims) |
Reordena las dimensiones del tensor. |
torch.movedim(input, source, destination) |
Mueve las dimensiones del tensor a nuevas posiciones. |
torch.moveaxis(input, source, destination) |
Mueve los ejes del tensor a nuevas posiciones. |
torch.narrow(input, dim, start, length) |
Devuelve un slice del tensor. |
torch.narrow_copy(input, dim, start, length) |
Devuelve una copia del slice del tensor. |
torch.select(input, dim, index) |
Selecciona el slice correspondiente al índice a lo largo de la dimensión especificada. |
torch.slice_scatter(input, src, dim, start, end) |
Dispersa src en los slices de input. |
torch.select_scatter(input, src, dim, index) |
Dispersa src en las posiciones de índice especificadas. |
torch.diagonal_scatter(input, src, offset, dim1, dim2) |
Dispersa valores en las posiciones diagonales. |
torch.expand(input, size) |
Expande el tamaño del tensor (vista). |
torch.expand_as(input, other) |
Expande el tensor al mismo tamaño que other. |
torch.masked_select(input, mask) |
Selecciona elementos según una máscara booleana. |
torch.index_select(input, dim, index) |
Selecciona elementos correspondientes a los índices a lo largo de la dimensión especificada. |
torch.gather(input, dim, index, sparse_grad) |
Recoge los elementos en los índices especificados a lo largo de la dimensión especificada. |
torch.scatter(input, dim, index, src, reduce) |
va asrcDispersa los valores deinputen las posiciones especificadas de. |
torch.scatter_add(input, dim, index, src) |
Suma los valores de src en las posiciones especificadas. |
torch.scatter_reduce(input, dim, index, src, reduce, include_self) |
Acumula los valores de src en las posiciones especificadas según el modo especificado. |
torch.index_add(input, dim, index, source, alpha) |
Suma source en las posiciones especificadas por index. |
torch.index_copy(input, dim, index, source) |
Copia source en las posiciones especificadas por index. |
torch.index_reduce(input, dim, index, source, reduce, include_self) |
Acumula source en las posiciones especificadas por index según el modo especificado. |
torch.take(input, index) |
Obtiene los elementos en las posiciones de índice dadas. |
torch.take_along_dim(input, indices, dim) |
Obtiene los elementos en las posiciones de índice a lo largo de la dimensión especificada. |
torch.nonzero(input) |
Devuelve los índices de los elementos distintos de cero. |
torch.argwhere(input) |
Devuelve los índices de los elementos que cumplen la condición. |
torch.where(condition, input, other) |
Devuelve elementos según la condición. |
torch.unbind(tensor, dim) |
Divide el tensor en una tupla a lo largo de la dimensión especificada. |
torch.split_with_sizes(tensor, split_sizes, dim) |
Divide el tensor por tamaños. |
torch.tensor_split(tensor, indices_or_sections, dim) |
Divide el tensor por índices o número de segmentos. |
torch.hsplit(tensor, indices_or_sections) |
Divide el tensor horizontalmente. |
torch.vsplit(tensor, indices_or_sections) |
Divide el tensor verticalmente. |
torch.dsplit(tensor, indices_or_sections) |
Divide el tensor en profundidad. |
torch.hstack(tensors, dim, out) |
Apila tensores horizontalmente. |
torch.vstack(tensors, out) |
Apila tensores verticalmente. |
torch.dstack(tensors, out) |
Apila tensores en profundidad. |
torch.column_stack(tensors, out) |
Apila tensores por columnas. |
torch.row_stack(tensors, out) |
Apila tensores por filas (igual que vstack). |
torch.tile(input, dims) |
Repite el tensor varias veces. |
torch.repeat_interleave(input, repeats, dim) |
Repite elementos a lo largo de la dimensión especificada. |
torch.flip(input, dims) |
Invierte el tensor a lo largo de la dimensión especificada. |
torch.fliplr(input) |
Invierte el tensor de izquierda a derecha. |
torch.flipud(input) |
Invierte el tensor de arriba hacia abajo. |
torch.rot90(input, k, dims) |
Rota el tensor 90 grados. |
torch.linalg.matrix_transpose(input) |
Transpone la matriz. |
torch.adjoint(input) |
Devuelve la matriz adjunta del tensor. |
torch.resolve_conj(input) |
Resuelve el tensor conjugado. |
torch.resolve_neg(input) |
Resuelve el tensor negativo. |
torch.view_as_real(input) |
Trata un tensor complejo como un tensor real. |
torch.view_as_complex(input) |
Trata un tensor real como un tensor complejo. |
torch.unravel_index(indices, shape) |
Convierte índices aplanados en índices multidimensionales. |
Generación de números aleatorios
| Función | Descripción |
|---|---|
torch.manual_seed(seed) |
Establece la semilla aleatoria (CPU). |
torch.seed() |
Establece la semilla aleatoria y devuelve el nuevo valor de semilla. |
torch.initial_seed() |
Devuelve la semilla aleatoria actual. |
torch.get_rng_state() |
Devuelve el estado del generador de números aleatorios. |
torch.set_rng_state(state) |
Establece el estado del generador de números aleatorios. |
torch.rand(*size, dtype, device, requires_grad) |
Crea un tensor aleatorio de distribución uniforme (rango [0, 1)). |
torch.rand_like(input, dtype, device, requires_grad) |
Crea un tensor aleatorio de distribución uniforme con la misma forma que la entrada. |
torch.randn(*size, dtype, device, requires_grad) |
Crea un tensor aleatorio de distribución normal estándar. |
torch.randn_like(input, dtype, device, requires_grad) |
Crea un tensor aleatorio de distribución normal estándar con la misma forma que la entrada. |
torch.randint(low, high, size, dtype, device, requires_grad) |
Crea un tensor de enteros aleatorios. |
torch.randint_like(input, low, high, dtype, device, requires_grad) |
Crea un tensor de enteros aleatorios con la misma forma que la entrada. |
torch.randperm(n, dtype, device, requires_grad) |
Crea una permutación aleatoria de 0 a n-1. |
torch.bernoulli(input, *, generator) |
Genera números aleatorios a partir de la distribución de Bernoulli. |
torch.multinomial(input, num_samples, replacement, generator) |
Realiza un muestreo multinomial. |
torch.normal(mean, std, out) |
Genera números aleatorios a partir de la distribución normal. |
torch.poisson(input, generator) |
Genera números aleatorios a partir de la distribución de Poisson. |
Serialización
| Función | Descripción |
|---|---|
torch.save(obj, f, pickle_module, pickle_protocol) |
Guarda un objeto en un archivo. |
torch.load(f, map_location, pickle_module, weights_only) |
Carga un objeto desde un archivo. |
Control de gradientes
| Función | Descripción |
|---|---|
torch.no_grad() |
Administrador de contexto que desactiva el cálculo de gradientes. |
torch.enable_grad() |
Administrador de contexto que activa el cálculo de gradientes. |
torch.set_grad_enabled(grad) |
Establece si el cálculo de gradientes está habilitado. |
torch.is_grad_enabled() |
Comprueba si el cálculo de gradientes está habilitado. |
torch.inference_mode() |
Administrador de contexto, modo de inferencia (desactiva gradientes y autograd). |
torch.is_inference_mode_enabled() |
Comprueba si el modo de inferencia está habilitado. |
Operaciones matemáticas - Operaciones puntuales
| Función | Descripción |
|---|---|
torch.abs(input, out) |
Valor absoluto elemento a elemento. |
torch.absolute(input, out) |
Valor absoluto elemento a elemento (igual que abs). |
torch.acos(input, out) |
Arcocoseno elemento a elemento. |
torch.arccos(input, out) |
Arcocoseno elemento a elemento (igual que acos). |
torch.acosh(input, out) |
Arco coseno hiperbólico elemento a elemento. |
torch.arccosh(input, out) |
Arco coseno hiperbólico elemento a elemento (igual que acosh). |
torch.add(input, other, alpha, out) |
Suma elemento a elemento (con escalado alpha opcional). |
torch.addcdiv(input, tensor1, tensor2, value, out) |
Realiza input + value * (tensor1 / tensor2). |
torch.addcmul(input, tensor1, tensor2, value, out) |
Realiza input + value * (tensor1 * tensor2). |
torch.angle(input, out) |
Devuelve el ángulo de fase de un tensor complejo. |
torch.asin(input, out) |
Arcoseno elemento a elemento. |
torch.arcsin(input, out) |
Arcoseno elemento a elemento (igual que asin). |
torch.asinh(input, out) |
Arco seno hiperbólico elemento a elemento. |
torch.arcsinh(input, out) |
Arco seno hiperbólico elemento a elemento (igual que asinh). |
torch.atan(input, out) |
Arcotangente elemento a elemento. |
torch.arctan(input, out) |
Arcotangente elemento a elemento (igual que atan). |
torch.atan2(input, other, out) |
Arcotangente bidimensional elemento a elemento. |
torch.arctan2(input, other, out) |
Arcotangente bidimensional elemento a elemento (igual que atan2). |
torch.atanh(input, out) |
Arco tangente hiperbólico elemento a elemento. |
torch.arctanh(input, out) |
Arco tangente hiperbólico elemento a elemento (igual que atanh). |
torch.bitwise_not(input, out) |
Negación bit a bit elemento a elemento. |
torch.bitwise_and(input, other, out) |
AND bit a bit elemento a elemento. |
torch.bitwise_or(input, other, out) |
OR bit a bit elemento a elemento. |
torch.bitwise_xor(input, other, out) |
XOR bit a bit elemento a elemento. |
torch.bitwise_left_shift(input, other, out) |
Desplazamiento a la izquierda elemento a elemento. |
torch.bitwise_right_shift(input, other, out) |
Desplazamiento a la derecha elemento a elemento. |
torch.ceil(input, out) |
Redondeo hacia arriba elemento a elemento. |
torch.clamp(input, min, max, out) |
Limita los valores del tensor al rango especificado. |
torch.clip(input, min, max, out) |
Limita los valores del tensor al rango especificado (igual que clamp). |
torch.conj_physical(input, out) |
Calcula el conjugado físico elemento a elemento. |
torch.copysign(input, other, out) |
Copia el signo elemento a elemento. |
torch.cos(input, out) |
Coseno elemento a elemento. |
torch.cosh(input, out) |
Coseno hiperbólico elemento a elemento. |
torch.deg2rad(input, out) |
Convierte grados a radianes. |
torch.div(input, other, rounding_mode, out) |
División elemento a elemento. |
torch.divide(input, other, rounding_mode, out) |
División elemento a elemento (igual que div). |
torch.digamma(input, out) |
Calcula la función psi (derivada logarítmica) elemento a elemento. |
torch.erf(input, out) |
Función de error elemento a elemento. |
torch.erfc(input, out) |
Función de error complementaria elemento a elemento. |
torch.erfinv(input, out) |
Función de error inversa elemento a elemento. |
torch.exp(input, out) |
Función exponencial elemento a elemento. |
torch.exp2(input, out) |
Potencia de 2 elemento a elemento. |
torch.expm1(input, out) |
exp(x) - 1 elemento a elemento. |
torch.fake_quantize_per_channel_affine(input, scale, zero_point, axis, quant_min, quant_max) |
Simula la cuantización por canal. |
torch.fake_quantize_per_tensor_affine(input, scale, zero_point, quant_min, quant_max) |
Simula la cuantización por tensor. |
torch.fix(input, out) |
Toma la parte entera elemento a elemento (truncamiento hacia cero). |
torch.float_power(input, exponent, out) |
Potencia de punto flotante elemento a elemento. |
torch.floor(input, out) |
Redondeo hacia abajo elemento a elemento. |
torch.floor_divide(input, other, out) |
División entera elemento a elemento. |
torch.fmod(input, other, out) |
Módulo (resto) elemento a elemento. |
torch.frac(input, out) |
Parte fraccionaria elemento a elemento. |
torch.frexp(input, out) |
Descompone números de punto flotante en mantisa y exponente. |
torch.gradient(input, dim, spacing, edge_order) |
Calcula el gradiente de un tensor. |
torch.imag(input, out) |
Devuelve la parte imaginaria de un tensor complejo. |
torch.ldexp(input, other, out) |
Calcula input * 2**other elemento a elemento. |
torch.lerp(input, end, weight, out) |
Interpolación lineal elemento a elemento. |
torch.lgamma(input, out) |
Logaritmo de la función gamma elemento a elemento. |
torch.log(input, out) |
Logaritmo natural elemento a elemento. |
torch.log10(input, out) |
Logaritmo en base 10 elemento a elemento. |
torch.log1p(input, out) |
log(1 + x) elemento a elemento. |
torch.log2(input, out) |
Logaritmo en base 2 elemento a elemento. |
torch.logaddexp(input, other, out) |
log(exp(input) + exp(other)) elemento a elemento. |
torch.logaddexp2(input, other, out) |
log2(2**input + 2**other) elemento a elemento. |
torch.logical_and(input, other, out) |
AND lógico elemento a elemento. |
torch.logical_not(input, out) |
NOT lógico elemento a elemento. |
torch.logical_or(input, other, out) |
OR lógico elemento a elemento. |
torch.logical_xor(input, other, out) |
XOR lógico elemento a elemento. |
torch.logit(input, eps, out) |
Función logit elemento a elemento. |
torch.hypot(input, other, out) |
Función hypot elemento a elemento: sqrt(input^2 + other^2). |
torch.i0(input, out) |
Función de Bessel modificada (primera especie, orden 0) elemento a elemento. |
torch.igamma(input, other, out) |
Función gamma incompleta elemento a elemento. |
torch.igammac(input, other, out) |
Función gamma incompleta complementaria elemento a elemento. |
torch.mul(input, other, out) |
Multiplicación elemento a elemento. |
torch.multiply(input, other, out) |
Multiplicación elemento a elemento (igual que mul). |
torch.mvlgamma(input, p, out) |
Logaritmo de la función gamma multivariante elemento a elemento. |
torch.nan_to_num(input, nan, posinf, neginf, out) |
Reemplaza NaN por un valor especificado. |
torch.neg(input, out) |
Negación elemento a elemento. |
torch.negative(input, out) |
Negación elemento a elemento (igual que neg). |
torch.nextafter(input, other, out) |
Devuelve el siguiente número de punto flotante representable elemento a elemento. |
torch.polygamma(input, n, out) |
Función poligamma elemento a elemento. |
torch.positive(input, out) |
Valor positivo elemento a elemento. |
torch.pow(input, exponent, out) |
Potencia elemento a elemento. |
torch.quantized_batch_norm(input, weight, bias, mean, var, eps, output_scale, output_zero_point) |
Normalización por lotes cuantizada. |
torch.quantized_max_pool1d(input, kernel_size, stride, padding, dilation, ceil_mode) |
Agrupación máxima cuantizada (1D). |
torch.quantized_max_pool2d(input, kernel_size, stride, padding, dilation, ceil_mode) |
Agrupación máxima cuantizada (2D). |
torch.rad2deg(input, out) |
Convierte radianes a grados. |
torch.real(input, out) |
Devuelve la parte real de un tensor complejo. |
torch.reciprocal(input, out) |
Recíproco elemento a elemento. |
torch.remainder(input, other, out) |
Resto elemento a elemento. |
torch.round(input, decimals, out) |
Redondeo elemento a elemento. |
torch.rsqrt(input, out) |
Recíproco de la raíz cuadrada elemento a elemento. |
torch.sigmoid(input, out) |
Función sigmoide elemento a elemento. |
torch.sign(input, out) |
Devuelve el signo elemento a elemento (-1, 0, 1). |
torch.sgn(input, out) |
Devuelve el vector de signos elemento a elemento. |
torch.signbit(input, out) |
Comprueba el bit de signo elemento a elemento. |
torch.sin(input, out) |
Seno elemento a elemento. |
torch.sinc(input, out) |
Función sinc elemento a elemento: sin(pi*x)/(pi*x). |
torch.sinh(input, out) |
Seno hiperbólico elemento a elemento. |
torch.softmax(input, dim, dtype) |
Función softmax elemento a elemento. |
torch.sqrt(input, out) |
Raíz cuadrada elemento a elemento. |
torch.square(input, out) |
Cuadrado elemento a elemento. |
torch.sub(input, other, alpha, out) |
Resta elemento a elemento. |
torch.subtract(input, other, alpha, out) |
Resta elemento a elemento (igual que sub). |
torch.tan(input, out) |
Tangente elemento a elemento. |
torch.tanh(input, out) |
Tangente hiperbólica elemento a elemento. |
torch.true_divide(input, other, out) |
División real elemento a elemento. |
torch.trunc(input, out) |
Truncamiento elemento a elemento (parte entera). |
torch.xlogy(input, other, out) |
Calcula input * log(other) elemento a elemento. |
Operaciones matemáticas - Operaciones de reducción
| Función | Descripción |
|---|---|
torch.argmax(input, dim, keepdim) |
Devuelve los índices de los valores máximos a lo largo de una dimensión. |
torch.argmin(input, dim, keepdim) |
Devuelve los índices de los valores mínimos a lo largo de una dimensión. |
torch.amax(input, dim, keepdim, out) |
Devuelve los valores máximos a lo largo de una dimensión. |
torch.amin(input, dim, keepdim, out) |
Devuelve los valores mínimos a lo largo de una dimensión. |
torch.aminmax(input, dim, keepdim, out) |
Devuelve los valores mínimo y máximo a lo largo de una dimensión. |
torch.all(input, dim, keepdim, out) |
Determina si todos los elementos son True. |
torch.any(input, dim, keepdim, out) |
Determina si algún elemento es True. |
torch.max(input, dim, keepdim, out) |
Calcula el máximo a lo largo de la dimensión especificada. |
torch.min(input, dim, keepdim, out) |
Calcula el mínimo a lo largo de la dimensión especificada. |
torch.dist(input, other, p) |
Calcula la distancia de norma p entre dos tensores. |
torch.logsumexp(input, dim, keepdim, out) |
Calcula log-sum-exp. |
torch.mean(input, dim, keepdim, out) |
Calcula la media a lo largo de la dimensión especificada. |
torch.nanmean(input, dim, keepdim, out) |
Calcula la media a lo largo de la dimensión especificada (ignorando NaN). |
torch.median(input, dim, keepdim, out) |
Calcula la mediana a lo largo de la dimensión especificada. |
torch.nanmedian(input, dim, keepdim, out) |
Calcula la mediana a lo largo de la dimensión especificada (ignorando NaN). |
torch.mode(input, dim, keepdim, out) |
Calcula la moda a lo largo de la dimensión especificada. |
torch.norm(input, p, dim, keepdim, out) |
Calcula la norma p. |
torch.nansum(input, dim, keepdim, out) |
Calcula la suma a lo largo de la dimensión especificada (ignorando NaN). |
torch.prod(input, dim, keepdim, dtype, out) |
Calcula el producto a lo largo de la dimensión especificada. |
torch.quantile(input, q, dim, keepdim, out, method) |
Calcula cuantiles. |
torch.nanquantile(input, q, dim, keepdim, out, method) |
Calcula cuantiles (ignorando NaN). |
torch.std(input, dim, unbiased, keepdim, out) |
Calcula la desviación estándar. |
torch.std_mean(input, dim, unbiased, keepdim) |
Calcula la desviación estándar y la media. |
torch.sum(input, dim, keepdim, dtype, out) |
Calcula la suma a lo largo de la dimensión especificada. |
torch.unique(input, sorted, return_inverse, return_counts, dim) |
Devuelve los elementos únicos. |
torch.unique_consecutive(input, sorted, return_inverse, return_counts, dim) |
Devuelve los elementos únicos consecutivos. |
torch.var(input, dim, unbiased, keepdim, out) |
Calcula la varianza. |
torch.var_mean(input, dim, unbiased, keepdim) |
Calcula la varianza y la media. |
torch.count_nonzero(input, dim) |
Cuenta el número de elementos distintos de cero. |
torch.hash_tensor(input) |
Calcula el valor hash de un tensor. |
Operaciones matemáticas - Operaciones de comparación
| Función | Descripción |
|---|---|
torch.allclose(input, other, rtol, atol, equal_nan) |
Comprueba si dos tensores son cercanos (todos los elementos). |
torch.argsort(input, dim, descending, stable) |
Devuelve los índices ordenados. |
torch.eq(input, other, out) |
Comparación de igualdad elemento a elemento. |
torch.equal(input, other) |
Comprueba si dos tensores son exactamente iguales. |
torch.ge(input, other, out) |
Comparación mayor o igual que elemento a elemento. |
torch.greater_equal(input, other, out) |
Comparación mayor o igual que elemento a elemento (igual que ge). |
torch.gt(input, other, out) |
Comparación mayor que elemento a elemento. |
torch.greater(input, other, out) |
Comparación mayor que elemento a elemento (igual que gt). |
torch.isclose(input, other, rtol, atol, equal_nan) |
Comprueba si dos tensores son cercanos (elemento a elemento). |
torch.isfinite(input, out) |
Comprueba si los valores son finitos. |
torch.isin(elements, test_elements, assume_unique, invert) |
Comprueba si los elementos están en un conjunto. |
torch.isinf(input, out) |
Comprueba si los valores son infinitos. |
torch.isposinf(input, out) |
Comprueba si es infinito positivo. |
torch.isneginf(input, out) |
Comprueba si es infinito negativo. |
torch.isnan(input, out) |
Comprueba si es NaN. |
torch.isreal(input, out) |
Comprueba si es un número real. |
torch.kthvalue(input, k, dim, keepdim, out) |
Devuelve el k-ésimo elemento más pequeño y su índice. |
torch.le(input, other, out) |
Comparación menor o igual que elemento a elemento. |
torch.less_equal(input, other, out) |
Comparación menor o igual que elemento a elemento (igual que le). |
torch.lt(input, other, out) |
Comparación menor que elemento a elemento. |
torch.less(input, other, out) |
Comparación menor que elemento a elemento (igual que lt). |
torch.maximum(input, other, out) |
Toma el máximo elemento a elemento. |
torch.minimum(input, other, out) |
Toma el mínimo elemento a elemento. |
torch.fmax(input, other, out) |
Toma el máximo elemento a elemento (ignorando NaN). |
torch.fmin(input, other, out) |
Toma el mínimo elemento a elemento (ignorando NaN). |
torch.ne(input, other, out) |
Comparación de desigualdad elemento a elemento. |
torch.not_equal(input, other, out) |
Comparación de desigualdad elemento a elemento (igual que ne). |
torch.sort(input, dim, descending, stable, out) |
Ordena a lo largo de la dimensión especificada. |
torch.topk(input, k, dim, largest, sorted, out) |
Devuelve los k elementos más grandes y sus índices. |
torch.msort(input, out) |
Ordena a lo largo de la última dimensión (devuelve el tensor ordenado). |
Operaciones matemáticas - Operaciones espectrales
| Función | Descripción |
|---|---|
torch.stft(input, n_fft, hop_length, win_length, window, center, normalized, onesided, return_complex) |
Transformada de Fourier de tiempo corto. |
torch.istft(input, n_fft, hop_length, win_length, window, center, normalized, onesided, length, return_complex) |
Transformada de Fourier de tiempo corto inversa. |
torch.bartlett_window(window_length, periodic, dtype, device) |
Ventana Bartlett. |
torch.blackman_window(window_length, periodic, dtype, device) |
Ventana Blackman. |
torch.hamming_window(window_length, periodic, alpha, beta, dtype, device) |
Ventana Hamming. |
torch.hann_window(window_length, periodic, dtype, device) |
Ventana Hann. |
torch.kaiser_window(window_length, periodic, beta, dtype, device) |
Ventana Kaiser. |
Operaciones matemáticas - Otras operaciones
| Función | Descripción |
|---|---|
torch.atleast_1d(*tensors) |
Convierte la entrada en un tensor de al menos 1 dimensión. |
torch.atleast_2d(*tensors) |
Convierte la entrada en un tensor de al menos 2 dimensiones. |
torch.atleast_3d(*tensors) |
Convierte la entrada en un tensor de al menos 3 dimensiones. |
torch.bincount(input, weights, minlength) |
Cuenta el número de apariciones de enteros no negativos. |
torch.block_diag(*tensors) |
Construye una matriz de bloques diagonal a partir de tensores de entrada. |
torch.broadcast_tensors(*tensors) |
Transmite las entradas a la misma forma. |
torch.broadcast_to(input, shape) |
Transmite el tensor a una forma especificada. |
torch.broadcast_shapes(*shapes) |
Transmite formas para operaciones compatibles. |
torch.bucketize(input, boundaries, right) |
Asigna las entradas a índices de cubeta (bucket). |
torch.cartesian_prod(*tensors) |
Calcula el producto cartesiano. |
torch.cdist(x1, x2, p, compute_mode) |
Calcula distancias por pares. |
torch.clone(input, memory_format) |
Devuelve una copia del tensor. |
torch.combinations(input, r, with_replacement) |
Calcula combinaciones. |
torch.corrcoef(input) |
Calcula la matriz de coeficientes de correlación. |
torch.cov(input, correction, fweights, aweights) |
Calcula la matriz de covarianza. |
torch.cross(input, dim, out) |
Calcula el producto vectorial (producto cruz). |
torch.cummax(input, dim, out) |
Acumula el máximo a lo largo de una dimensión. |
torch.cummin(input, dim, out) |
Acumula el mínimo a lo largo de una dimensión. |
torch.cumprod(input, dim, out) |
Acumula el producto a lo largo de una dimensión. |
torch.cumsum(input, dim, out, dtype) |
Acumula la suma a lo largo de una dimensión. |
torch.diag(input, diagonal, out) |
Crea una matriz diagonal o extrae la diagonal. |
torch.diag_embed(input, offset, dim1, dim2, out) |
Incrusta la entrada como una diagonal. |
torch.diagflat(input, offset, out) |
Crea una matriz diagonal (entrada plana). |
torch.diagonal(input, offset, dim1, dim2, out) |
Extrae los elementos de la diagonal. |
torch.diff(input, n, dim, prepend, append, out) |
Calcula diferencias. |
torch.einsum(equation, *operands) |
Convención de suma de Einstein. |
torch.flatten(input, start_dim, end_dim, out) |
Aplana el tensor. |
torch.ravel(input, out) |
Aplana a un tensor unidimensional. |
torch.kron(input, other, out) |
Calcula el producto de Kronecker. |
torch.meshgrid(*tensors, indexing) |
Crea una cuadrícula (meshgrid). |
torch.lcm(input, other, out) |
Mínimo común múltiplo elemento a elemento. |
torch.logcumsumexp(input, dim, out) |
Acumula log-sum-exp a lo largo de una dimensión. |
torch.renorm(input, p, dim, maxnorm, out) |
Renormaliza a una norma especificada. |
torch.roll(input, shifts, dims) |
Desplaza (roll) los elementos del tensor. |
torch.searchsorted(sorted_sequence, values, side, sorter) |
Busca posiciones en una secuencia ordenada. |
torch.tensordot(a, b, dims) |
Calcula el producto punto de tensores. |
torch.trace(input, out) |
Calcula la traza de la matriz. |
torch.tril(input, diagonal, out) |
Extrae la matriz triangular inferior. |
torch.tril_indices(row, column, offset, dtype, device, layout) |
Genera índices triangulares inferiores. |
torch.triu(input, diagonal, out) |
Extrae la matriz triangular superior. |
torch.triu_indices(row, column, offset, dtype, device, layout) |
Genera índices triangulares superiores. |
torch.unflatten(input, dim, sizes) |
Expande el tensor. |
torch.vander(x, N, increasing, out) |
Crea una matriz de Vandermonde. |
Álgebra lineal (BLAS y LAPACK)
| Función | Descripción |
|---|---|
torch.addbmm(input, batch1, batch2, beta, alpha, out) |
Multiplicación de matrices por lotes con suma. |
torch.addmm(input, mat1, mat2, beta, alpha, out) |
Multiplicación de matrices con suma. |
torch.addmv(input, mat, vec, beta, alpha, out) |
Multiplicación matriz-vector con suma. |
torch.addr(input, vec1, vec2, beta, alpha, out) |
Producto exterior de vectores con suma. |
torch.baddbmm(input, batch1, batch2, beta, alpha, out) |
Multiplicación de matrices por lotes con suma (bmm + add). |
torch.bmm(input, mat2, out) |
Multiplicación de matrices por lotes. |
torch.chain_matmul(*matrices) |
Multiplicación de matrices encadenada. |
torch.cholesky(input, upper, out) |
Descomposición de Cholesky. |
torch.cholesky_inverse(input, upper, out) |
Inversión mediante descomposición de Cholesky. |
torch.cholesky_solve(input, input2, upper, out) |
Resolución de ecuaciones lineales mediante descomposición de Cholesky. |
torch.dot(input, other, out) |
Calcula el producto punto de dos vectores. |
torch.geqrf(input, out) |
Descomposición QR (geqrf). |
torch.ger(input, other, out) |
Calcula el producto exterior de vectores. |
torch.inner(input, other, out) |
Calcula el producto interno. |
torch.inverse(input, out) |
Calcula la inversa de la matriz. |
torch.det(input, out) |
Calcula el determinante de la matriz. |
torch.logdet(input, out) |
Calcula el logaritmo del determinante. |
torch.slogdet(input, out) |
Calcula el signo y el logaritmo del valor absoluto del determinante. |
torch.lu(input, pivot, get_infos, out) |
Descomposición LU. |
torch.lu_solve(input, LU_data, LU_pivots, out) |
Resolución mediante descomposición LU. |
torch.lu_unpack(LU_data, LU_pivots, unpack_data, unpack_pivots) |
Desempaqueta el resultado de la descomposición LU. |
torch.matmul(input, other, out) |
Multiplicación de matrices (admite diferentes dimensiones). |
torch.matrix_power(input, n, out) |
Potencia de matrices. |
torch.matrix_exp(input, out) |
Exponencial de matrices. |
torch.mm(input, mat2, out) |
Multiplicación de matrices (bidimensional). |
torch.mv(input, vec, out) |
Multiplicación matriz-vector. |
torch.orgqr(input, q, out) |
Reconstruye Q a partir de la descomposición QR. |
torch.ormqr(input, mat, vec, left, transpose, out) |
Operación ormqr. |
torch.outer(input, other, out) |
Calcula el producto exterior de vectores. |
torch.pinverse(input, rcond, out) |
Calcula la pseudoinversa de Moore-Penrose. |
torch.qr(input, out) |
Descomposición QR. |
torch.svd(input, some, compute_uv, out) |
Descomposición en valores singulares. |
torch.svd_lowrank(input, q, niter, M) |
Aproximación SVD de rango bajo. |
torch.pca_lowrank(input, q, center, niter) |
Aproximación PCA de rango bajo. |
torch.lobpcg(input, K, B, X, M, P, max_iter, tol, debug, ortho_iparams, fpfloor) |
Solucionador de autovalores LOBPCG. |
torch.trapz(y, x, dim, out) |
Integración trapezoidal (obsoleta, use trapezoid). |
torch.trapezoid(y, x, dim, out) |
Integración trapezoidal. |
torch.cumulative_trapezoid(y, x, dim, out) |
Integración trapezoidal acumulativa. |
torch.triangular_solve(input, A, upper, transpose, unitriangular, out) |
Resolución de matrices triangulares. |
torch.vdot(input, other, out) |
Calcula el producto punto de vectores (compatible con complejos). |
Gestión de dispositivos
| Función | Descripción |
|---|---|
torch.cuda.is_available() |
Comprueba si CUDA está disponible. |
torch.cuda.device_count() |
Devuelve el número de dispositivos CUDA. |
torch.cuda.current_device() |
Devuelve el índice del dispositivo CUDA actual. |
torch.cuda.device(name) |
Crea un objeto de dispositivo. |
torch.cuda.device_context(device) |
Crea un contexto de dispositivo. |
torch.device(device) |
Crea un objeto de dispositivo (por ejemplo,'cpu'o'cuda:0')。 |
torch.Tensor.to(device) |
Mueve el tensor al dispositivo especificado. |
torch.get_device_module(device_type) |
Obtiene el módulo del dispositivo (por ejemplo, cuda, mps). |
Computación paralela
| Función | Descripción |
|---|---|
torch.get_num_threads() |
Obtiene el número total de hilos para operaciones de CPU. |
torch.set_num_threads(int) |
Establece el número de hilos para operaciones de CPU. |
torch.get_num_interop_threads() |
Obtiene el número de hilos paralelos inter-operación (inter-op). |
torch.set_num_interop_threads(int) |
Establece el número de hilos paralelos inter-operación (inter-op). |
Funciones de utilidad
| Función | Descripción |
|---|---|
torch.compiled_with_cxx11_abi() |
Comprueba si está compilado con ABI de C++11. |
torch.result_type(tensor, other) |
Devuelve el dtype del resultado de la operación. |
torch.can_cast(from_dtype, to_dtype) |
Comprueba si se puede convertir el tipo de datos. |
torch.promote_types(type1, type2) |
Devuelve el tipo de datos promovido. |
torch.use_deterministic_algorithms(mode, warn_only) |
Habilita/deshabilita algoritmos deterministas. |
torch.are_deterministic_algorithms_enabled() |
Comprueba si los algoritmos deterministas están habilitados. |
torch.is_deterministic_algorithms_warn_only_enabled() |
Comprueba si el algoritmo determinista está en modo de advertencia. |
torch.set_deterministic_debug_mode(debug_mode) |
Establece el modo de depuración determinista. |
torch.get_deterministic_debug_mode() |
Obtiene el modo de depuración determinista. |
torch.set_float32_matmul_precision(precision) |
Establece la precisión de la multiplicación de matrices float32. |
torch.get_float32_matmul_precision() |
Obtiene la precisión de la multiplicación de matrices float32. |
torch.set_warn_always(enabled) |
Establece si siempre se muestran advertencias. |
torch.is_warn_always_enabled() |
Comprueba si siempre se muestran advertencias. |
torch.vmap(fn, in_dims, out_dims, randomness, chunk_size) |
Mapeo vectorizado. |
torch._assert(condition, message) |
Verificación de aserción (uso interno). |
torch.typename(t) |
Devuelve la representación en cadena del tipo. |
Optimización de compilación
| Función | Descripción |
|---|---|
torch.compile(model, backend, options, dynamic) |
Compila el modelo de PyTorch para optimización. |
Ejemplos
Ejemplos
import torch
# Crear un tensor
x = torch.tensor([1, 2, 3])
y = torch.zeros(2, 3)
# Operaciones matemáticas
z = torch.add(x, 1) # Sumar 1 elemento a elemento
print(z)
# Indexación y segmentación (slicing)
mask = x > 1
selected = torch.masked_select(x, mask)
print(selected)
# Gestión de dispositivos
if torch.cuda.is_available():
device = torch.device('cuda')
x = x.to(device)
print(x.device)
# Operaciones con matrices
a = torch.randn(3, 4)
b = torch.randn(4, 5)
c = torch.matmul(a, b)
print(c.shape)
# Cálculo de gradientes
x = torch.tensor([1., 2., 3.], requires_grad=True)
y = x.sum()
y.backward()
print(x.grad)
# Crear un tensor
x = torch.tensor([1, 2, 3])
y = torch.zeros(2, 3)
# Operaciones matemáticas
z = torch.add(x, 1) # Sumar 1 elemento a elemento
print(z)
# Indexación y segmentación (slicing)
mask = x > 1
selected = torch.masked_select(x, mask)
print(selected)
# Gestión de dispositivos
if torch.cuda.is_available():
device = torch.device('cuda')
x = x.to(device)
print(x.device)
# Operaciones con matrices
a = torch.randn(3, 4)
b = torch.randn(4, 5)
c = torch.matmul(a, b)
print(c.shape)
# Cálculo de gradientes
x = torch.tensor([1., 2., 3.], requires_grad=True)
y = x.sum()
y.backward()
print(x.grad)
Resultado de salida:
tensor([2, 3, 4]) tensor([2, 3])
Si se necesita información más detallada, se puede consultarDocumentación oficial de PyTorch。
Otras extensiones