list, numpy <-> tensor로 바꾸기

dusruddl2·2022년 9월 22일
0

pytorch tutorial

목록 보기
1/4

list -> tensor

torch.tensor()

#list로부터 직접 tensor 생성하기
data = [[1,2],[3,4]]
x_data = torch.tensor(data)
x_data

numpy -> tensor

총 3가지 방법이 있다.

torch.tensor()

#numpy로부터 tensor 생성하기
np_array = np.array(data)
x_np_1 = torch.tensor(np_array)
x_np_1

torch.as_tensor()

x_np_2 = torch.as_tensor(np_array)
x_np_2

torch.from_numpy()

x_np_3 = torch.from_numpy(np_array)
x_np_3

결과는 모두 다음과 같다


이들의 차이는 무엇일까?

torch.tensor은 유일하게 기존 값을 바꾸지 않음.
그래서 메모리 낭비가 있을 수 있음. 주의!

torch.tensor()

# 얘는 유일하게 결과를 바꾸지 않음
x_np_1[0,0] = 5
print(x_np_1)
print(np_array)

torch.as_tensor()

x_np_2[0,0] = 5
print(x_np_2)
print(np_array)

torch.from_numpy()

x_np_3[0,0] = 5
print(x_np_3)
print(np_array)

아래 두 경우의 결과는 다음과 같다.


tensor -> numpy

.numpy()

np_again = x_np_1.numpy()
print(np_again,type(np_again))

profile
정리된 글은 https://dusruddl2.tistory.com/로 이동

0개의 댓글