Pytorch | Я не знаю, почему выдает ошибку? (Начальный) - PullRequest
0 голосов
/ 04 мая 2020
import torch.nn as nn
import torch.nn.functional as F

## TODO: Define the NN architecture
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        # linear layer (784 -> 1 hidden node)
        self.fc1 = nn.Linear(28 * 28, 512)
        self.fc2 = nn.Linear(512 * 512)
        self.fc3 = nn.Linear(512 * 10)

    def forward(self, x):
        # flatten image input
        x = x.view(-1, 28 * 28)
        # add hidden layer, with relu activation function
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = F.relu(self.fc3(x))
        return x

# initialize the NN
model = Net()
print(model)

Когда я запускаю это, он выдает эту ошибку. Почему?

Ошибка типа: __ init __ () отсутствует 1 обязательный позиционный аргумент: 'out_features'

1 Ответ

3 голосов
/ 04 мая 2020

Эта ошибка связана с тем, что вы не указали размер вывода полностью подключенного слоя в ваших fc2 и fc3. Ниже приведен модифицированный код. Я добавил размер вывода, я не уверен, если это архитектура размера вывода, которую вы хотите. Но для демонстрации я поставил размер вывода. Пожалуйста, измените код и добавьте выходной размер согласно вашему требованию.

Помните, что выходной размер предыдущего полностью подключенного слоя должен быть входным размером следующего слоя F C. В противном случае это приведет к ошибке несоответствия размера.

import torch.nn as nn
import torch.nn.functional as F

## TODO: Define the NN architecture
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        # linear layer (784 -> 1 hidden node)
        self.fc1 = nn.Linear(28 * 28, 512)
        self.fc2 = nn.Linear(512 ,512*10)
        self.fc3 = nn.Linear(512 * 10,10)

    def forward(self, x):
        # flatten image input
        x = x.view(-1, 28 * 28)
        # add hidden layer, with relu activation function
        x = F.relu(self.fc1(x))
        x = F.relu(self.fc2(x))
        x = F.relu(self.fc3(x))
        return x

# initialize the NN
model = Net()
print(model)
...