Разница в форме тензорного факела. Размер ([]) и размер факела. [[1]) в пыльнике - PullRequest
1 голос
/ 02 июля 2019

Я новичок в pytorch.Играя с тензорами, я наблюдал 2 типа тензоров -

tensor(58)
tensor([57.3895])

Я напечатал их форму, и результат был соответственно -

torch.Size([])
torch.Size([1])

В чем разница между этими двумя?

Ответы [ 2 ]

2 голосов
/ 02 июля 2019

Первый неверен, следовательно, его размер не может быть определен.

Вы должны использовать list для его инициализации, см. Здесь для получения дополнительной информации.

0 голосов
/ 02 июля 2019

Вы можете играть с тензорами, имеющими единственное скалярное значение, например:

import torch

t = torch.tensor(1)
print(t, t.shape) # tensor(1) torch.Size([])

t = torch.tensor([1])
print(t, t.shape) # tensor([1]) torch.Size([1])

t = torch.tensor([[1]])
print(t, t.shape) # tensor([[1]]) torch.Size([1, 1])

t = torch.tensor([[[1]]])
print(t, t.shape) # tensor([[[1]]]) torch.Size([1, 1, 1])

t = torch.unsqueeze(t, 0)
print(t, t.shape) # tensor([[[[1]]]]) torch.Size([1, 1, 1, 1])

t = torch.unsqueeze(t, 0)
print(t, t.shape) # tensor([[[[[1]]]]]) torch.Size([1, 1, 1, 1, 1])

t = torch.unsqueeze(t, 0)
print(t, t.shape) # tensor([[[[[[1]]]]]]) torch.Size([1, 1, 1, 1, 1, 1])

#squize dimension with id 0
t = torch.squeeze(t,dim=0)
print(t, t.shape) # tensor([[[[[1]]]]]) torch.Size([1, 1, 1, 1, 1])

#back to beginning.
t = torch.squeeze(t)
print(t, t.shape) # tensor(1) torch.Size([])

print(type(t)) # <class 'torch.Tensor'>
print(type(t.data)) # <class 'torch.Tensor'>

Тензоры, имеют размер или форму.Что то же самое.Который на самом деле класс torch.Size.Вы можете написать help(torch.Size), чтобы получить больше информации.Каждый раз, когда вы пишете t.shape или t.size(), вы получите информацию о размере.

Идея тензоров заключается в том, что они могут иметь разные совместимые размеры для данных внутри него, включая torch.Size([]).

Каждый раз, когда вы отжимаете тензор, он добавляет другое измерение 1. Каждый раз, когда вы сжимаете тензор, он удаляет измерения 1 или, в общем случае, все измерения одного.

...