์์ฐ์ด์ฒ๋ฆฌ ์คํฐ๋์์ torch.Tensor(n)
์ 1์ฐจ์ n๊ฐ์ ๊ฐ์ ๊ฐ๋ ๋๋ค ์ค์๊ฐ(garbage) ํ
์๋ฅผ ๋ฐํํ๋ค๊ณ ๋ฐฐ์ ์๋ค
๊ทธ๋ฐ๋ฐ ๋ฅ๋ฌ๋ ๊ณผ๋ชฉ์์ torch.tensor(n)
์ 0์ฐจ์ n์ด๋ผ๋ ๊ฐ์ ๊ฐ๋ ์ค์นผ๋ผ ํ
์๋ฅผ ๋ฐํํ์๋ค.
๋ ๊ฐ๊ฐ ๊ณผ์ฐ ๋ค๋ฅธ ๊ฒ์ด๋ ๋ง์ธ๊ฐ?? ๋ผ๋ ์์ฌ์ด ๋ค์ด ๊ตฌ๊ธ๋ง์ ํด๋ณด๋ ์ญ์ ๋ค๋ฅธ ๊ฒ์ด์๋ค!
๊ฝค ์ฌ์ํ ์ฐจ์ด๋ผ ์์ผ๋ก ์ฃผ์ํ ํ์๊ฐ ์์ ๊ฒ ๊ฐ์ ํ์คํ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค.
๋ ๋ค tensor๋ฅผ ๋ง๋ค์ด์ค๋ค.
๊ทธ๋ฌ๋..
torch.Tensor()
๋ Class , torch.tensor()
๋ Function์ด๋ค.
pytorch.org์ ๋ค์ด๊ฐ ๋ณด๋ฉด Tensor์ ๋ํ ์ฌ๋ฌ ๋ฉ์๋๋ฅผ ๋ณผ ์ ์๋ค.
๊ทธ๋ฐ๋ฐ... torch.tensor()๋ฅผ ํตํด์๋ Transpose์ ๊ฐ์ ๋ฉ์๋๋ฅผ ์ ์ฉํด๋ณผ ์ ์๋ค.
torch.Tensor
๋ int ์
๋ ฅ์ float(32) ์ผ๋ก ๋ณํํ์ฌ ๋ฐํํ๋ฉฐ,
torch.tensor
๋ int ์
๋ ฅ์ int ๊ทธ๋๋ก ๋ฐํํ๋ค.
torch.Tensor
๋ tensor ์
๋ ฅ์ ์
๋ ฅ ๋ฐ์ ๋ฐ์ดํฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค. (์์ ๋ณต์ฌ)
torch.tensor
๋ ๋ชจ๋ ์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก ๋ณต์ฌ(๊น์ ๋ณต์ฌ) ํ ์ฌ์ฉํ๋ค.
#torch.Tensor์ tensor๋ฅผ ์
๋ ฅํด๋ณด์.
original_data = torch.Tensor([1])
new_data = torch.Tensor(original_data)
print(f"original : {original_data} new : {new_data}")
# original data๋ฅผ ์์
original_data[0] = 2
print(f"original : {original_data} new : {new_data}")
>>> original : tensor([1.]) new : tensor([1.])
original : tensor([2.]) new : tensor([2.]) #์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ๋ณต์ฌํ ๊ฒ๋ ์์ ๋จ.
๐ด ๋จ, list, numpy ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅํ๋ฉด torch.tensor()
์ ๋์ผํ๊ฒ ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ผ๋ก ๋ณต์ฌํ์ฌ ์ฌ์ฉํ๋ค. tensor ์
๋ ฅ๋ง ์กฐ์ฌํ์!
# torch.torch์ tensor๋ฅผ ์
๋ ฅํด๋ณด์.
original_data = torch.tensor([1])
new_data = torch.tensor(original_data)
print(f"original : {original_data} new : {new_data}")
# data๋ฅผ ์์ ํ์
original_data[0] = 2
print(f"original : {original_data} new : {new_data}")
>>> original : tensor([1]) new : tensor([1])
original : tensor([2]) new : tensor([1]) #์
๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์์ ํด๋ ์ด๋ฏธ ๋ณต์ฌ๋ฅผ ์๋ฃํ์ฌ ๊ฐ์ด ๋ณํ์ง ์์
์๋ฌด ๊ดํธ ์์ด ์ผํ๋ก ์ฐจ์์ ๊ตฌ๋ถํ์ฌ shape์ ์
๋ ฅํด์ฃผ๋ฉด ๊ทธ์ ๋ฐ๋ผ์ float ํ์ผ๋ก ๋๋คํ๊ฒ ํ
์๋ฅผ ์ด๊ธฐํํด์ค๋ค.
๊ทธ๋์ ์ฃผ์ํด์ค์ผ ํ ์ ์ด torch.Tensor
๋ tensor๋ก ๋ณํ๋ input data๋ก ์ค์นผ๋ผ๊ฐ์ ๋ฐ์ง ์๋๋ค. ๋งจ ์์ ์ฌ๊ฑด์ ์ ๋ง์ฒ๋ผ torch.Tensor(n)
์ ํด์ฃผ๋ฉด 1์ฐจ์ n๊ฐ์ ์์๋ฅผ ๊ฐ์ง ๋๋ค ์ด๊ธฐํ ํ
์๊ฐ ํ์ํ๊ฒ ๋๋ค.
torch.Tensor
๋ฅผ ํตํด tensor๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ์ถ๋ค๋ฉด..list, array ํ์ผ๋ก ์
๋ ฅํด์ฃผ์๊ธธ...
x=torch.Tensor(2,3)
print(x.type())
print(x.shape)
print(x)
>>> torch.FloatTensor
torch.Size([2, 3])
tensor([[1.1138e-34, 0.0000e+00, 1.0009e-34],
[0.0000e+00, 8.9683e-44, 0.0000e+00]])
โ
๋๋คํ๊ฒ ์ด๊ธฐํํ ํ
์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์กด์ฌํ๋ค.
1) torch.empty(m,n)
== torch.Tensor(m,n)
#์ค์๋ฒ์ ์ ์ฒด
2) torch.rand(m,n)
#๊ท ๋ฑ ๋ถํฌ [0,1)
3) torch.randn(m,n)
#ํ์ค ์ ๊ท ๋ถํฌ (ํ๊ท ์ด 0 ์ด๊ณ , ํ์คํธ์ฐจ๊ฐ 1์ธ ๐ ๋ชจ์ ๊ทธ ๊ทธ๋ํ ์์์ฃ ?)
์ด๋ ํ ๋ฐ์ดํฐ๋ฅผ tensor ํ์ผ๋ก ๋ณํํ๊ณ ์ถ๋ค๋ฉด ๋๋๋ก torch.tensor()
๋ฅผ ์ด์ฉํ๋๋ก ํ์.