Tabla de contenido
- El elemento básico de operación de pytorch
-
- Crear una matriz no inicializada
- Crear una matriz inicializada
- Cree una matriz de todos los 0 y especifique el tipo de elemento de datos tan largo
- Crear tensores directamente a partir de datos
- Crear un nuevo tensor del mismo tamaño a partir de un tensor existente
- Use el método randn_like para obtener tensores del mismo tamaño y use la inicialización aleatoria para asignarles valores
- Usa el método .size() para obtener la forma del tensor
- suma
- operación de corte
- cambiar la forma de un tensor
- Si solo hay un elemento en el tensor, puede usar item() para obtener el valor como un número de Python
- Conversión entre tensor de antorcha y matriz numpy
- Acerca de cuda tensor: el tensor se puede mover a cualquier dispositivo con el método .to()
El elemento básico de operación de pytorch
from __future__ import print_function
import torch
Crear una matriz no inicializada
x=torch.empty(5,3)
print(x)
Crear una matriz inicializada
x=torch.rand(5,3)
print(x)
Cree una matriz de todos los 0 y especifique el tipo de elemento de datos tan largo
x=torch.zeros(5,3,dtype=torch.long)
print(x)
Crear tensores directamente a partir de datos
x=torch.tensor([2,5,3,5])
print(x)
Crear un nuevo tensor del mismo tamaño a partir de un tensor existente
x=x.new_ones(5,3,dtype=torch.double)
print(x)
Use el método randn_like para obtener tensores del mismo tamaño y use la inicialización aleatoria para asignarles valores
y=torch.randn_like(x,dtype=torch.float)
print(y)
Usa el método .size() para obtener la forma del tensor
print(x.size())
suma
el primer método
x=torch.randn(5,3)
y=torch.randn(5,3)
print(x+y)
el segundo metodo
print(torch.add(x,y))
tercer método
result=torch.empty(5,3)
torch.add(x,y,out=result)
print(result)
La cuarta forma: reemplazo in situ (ejecutando y=y+x)
y.add_(x)
print(y)
Aviso
operación de corte
x[:,1]
cambiar la forma de un tensor
x=torch.randn(4,4)
y=x.view(16)
z=x.view(-1,8)
x.size(),y.size(),z.size()
Si solo hay un elemento en el tensor, puede usar item() para obtener el valor como un número de Python
x=torch.randn(1)
print(x,x.item())
Conversión entre tensor de antorcha y matriz numpy
a=torch.ones(5)
b=a.numpy()
a.add_(1)
print(a,b)
import numpy as np
a=np.ones(5)
b=torch.from_numpy(a)
np.add(a,1,out=a)
print(a,b)
Aviso
Acerca de cuda tensor: el tensor se puede mover a cualquier dispositivo con el método .to()
ventanas
mac
if torch.backends.mps.is_available():
device=torch.device('mps')
#cpu上创建x,gpu上创建y
x=torch.randn(1)
y=torch.ones_like(x,device=device)
x=x.to(device)
#此时x,y都在gpu上
z=x+y
print(z)
#再将z转移到cpu上
print(z.to('cpu',torch.float32))