Función torch.from_numpy de PyTorch
Manual de referencia de Pytorch torch
torch.from_numpyEs una función en PyTorch que se utiliza para crear tensores a partir de arrays de NumPy. El tensor creado comparte memoria con el array de NumPy original.
Esto es muy útil en escenarios donde se necesita usar PyTorch y NumPy simultáneamente para el procesamiento de datos.
Definición de la función
torch.from_numpy(ndarray)
Parámetros:
ndarray(numpy.ndarray): El array de NumPy de entrada.
Valor de retorno:
torch.Tensor: Devuelve un tensor que comparte memoria con el array de NumPy.
Ejemplos de uso
Ejemplo 1: Crear un tensor a partir de un array de NumPy
Ejemplo
import torch
import numpy as np
# Crear un array de NumPy
numpy_array = np.array([[1, 2, 3], [4, 5, 6]])
# Convertir a tensor de PyTorch
tensor = torch.from_numpy(numpy_array)
print("Array de NumPy:")
print(numpy_array)
print("Tensor de PyTorch:")
print(tensor)
import numpy as np
# Crear un array de NumPy
numpy_array = np.array([[1, 2, 3], [4, 5, 6]])
# Convertir a tensor de PyTorch
tensor = torch.from_numpy(numpy_array)
print("Array de NumPy:")
print(numpy_array)
print("Tensor de PyTorch:")
print(tensor)
El resultado de salida es:
NumPy 数组:
[[1 2 3]
[4 5 6]]
PyTorch 张量:
tensor([[1, 2, 3],
[4, 5, 6]])
Ejemplo 2: Memoria compartida
Ejemplo
import torch
import numpy as np
# Crear un array de NumPy
numpy_array = np.array([1, 2, 3])
# Convertir a tensor de PyTorch
tensor = torch.from_numpy(numpy_array)
# Modificar el tensor
tensor[0] = 100
# El array de NumPy también cambia
print("Array de NumPy:", numpy_array)
print("Tensor de PyTorch:", tensor)
import numpy as np
# Crear un array de NumPy
numpy_array = np.array([1, 2, 3])
# Convertir a tensor de PyTorch
tensor = torch.from_numpy(numpy_array)
# Modificar el tensor
tensor[0] = 100
# El array de NumPy también cambia
print("Array de NumPy:", numpy_array)
print("Tensor de PyTorch:", tensor)
El resultado de salida es:
NumPy 数组: [100 2 3] PyTorch 张量: tensor([100, 2, 3])
Debido a la memoria compartida, modificar uno afecta al otro.
Ejemplo 3: Conversión de tipo de datos
Ejemplo
import torch
import numpy as np
# NumPy crea int64 por defecto
numpy_array = np.array([1, 2, 3])
tensor = torch.from_numpy(numpy_array)
print("dtype:", tensor.dtype) # torch.int64
import numpy as np
# NumPy crea int64 por defecto
numpy_array = np.array([1, 2, 3])
tensor = torch.from_numpy(numpy_array)
print("dtype:", tensor.dtype) # torch.int64
Otras extensiones