Использование nn.flatten в нейронной сети прямого распространения - PullRequest
0 голосов
/ 05 августа 2020

Мне нужна нейронная сеть (полностью подключенная), которая принимает пакет изображений размером 100 (эти изображения являются выходными данными кодировщика с размерностью (10,)) в форме тензора, поэтому [100,10] и выводит вектор с размером 20. Сначала я использовал этот код:

 def mlp(sizes, activation=nn.Tanh, output_activation=nn.Identity):
    layers = []
    for j in range(len(sizes)-1):
    act = activation if j < len(sizes)-2 else output_activation
    layers += [nn.Linear(sizes[j], sizes[j+1]), act()]
    return nn.Sequential(*layers)

Это дает мне тензор с размером [100,20]. Можно ли сгладить вывод последнего слоя перед nn.identity, а затем использовать еще два слоя [2000,100] и [100,20], чтобы мой результат имел форму (20,). Интересно, возможно ли это в полностью подключенная нейронная сеть, поскольку я видел, что nn.flatten используется только на последних уровнях CNN. Я ценю помощь.

...