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