Pytorch기초-Tensor
- tensor 생성, 변환
import torch
import numpy as np
# 배열 생성
data = [[1, 2], [3, 4]]
# 배열을 tensor로 변환
tensor = torch.tensor(data)
print(tensor) # tensor([[1, 2], [3, 4]])
# 배열을 array로 변환
array = np.array(data)
print(array) # [[1 2] [3 4]]
# array를 tensor로 변환
array_to_tensor = torch.from_numpy(array)
print(array_to_tensor) # tensor([[1, 2], [3, 4]])
# tensor를 array로 변환
tensor_to_array = tensor.numpy()
print(tensor_to_array) # [[1 2] [3 4]]
- tensor의 size와 dtype을 유지하여 새로운 tensor 생성
import torch
import numpy as np
data = [[1, 2], [3, 4]]
tensor = torch.tensor(data)
# 기존 tensor와 속성이 같고 각 원소가 1인 tensor 생성
ones = torch.ones_like(tensor)
print(f"Ones Tensor : \n {ones} ")
# 기존 tensor와 속성이 같고 각 원소를 랜덤으로 배정한 tensor 생성
rand = torch.rand_like(tensor, dtype=torch.float32)
print(f"Random Tensor : \n {rand}")
- 특정 size를 갖는 tensor 생성
import torch
import numpy as np
shape = (2, 3)
rand_tensor = torch.rand(shape)
ones_tensor = torch.ones(shape)
zeros_tensor = torch.zeros(shape)
print(f"Random Tensor : \n {rand_tensor}")
print(f"Ones Tensor : \n {ones_tensor}")
print(f"Zeros Tensor : \n {zeros_tensor}")
- tensor 속성 확인하기
print(f"Shape of tensor: {tensor.shape}") print(f"Datatype of tensor: {tensor.dtype}") print(f"Device tensor is stored on: {tensor.device}")
- tensor를 gpu로 이동(apple silicon)
import torch
import numpy as np
tensor = torch.tensor([1, 2])
if torch.has_mps:
tensor = tensor.to('mps:0')
print(f"Device tensor is stored on: {tensor.device}")
- tensor 연산
import torch
import numpy as np
tensor = torch.tensor([[1, 2], [3, 4]])
# 요소 대치
tensor[:, 1] = 0
print(tensor)
# 요소별 곱
ele_mul = tensor * tensor.T
print(ele_mul)
ele_mul = tensor.mul(tensor.T)
print(ele_mul)
# 행렬 곱
mat_mul = tensor @ tensor.T
print(mat_mul)
mat_mul = tensor.matmul(tensor.T)
print(mat_mul)
# 텐서 합치기
concat = torch.cat([tensor, tensor], dim=0) # 수직으로 합치기
print(concat)
concat = torch.cat([tensor, tensor], dim=1) # 수평으로 합치기
print(concat)
# 바꿔치기 연산
tensor.add_(1) #'_'가 포함되면 tensor를 대치시킨다
print(tensor)
Comments
Post a Comment