Получение этой ошибки RuntimeError: несоответствие размера, m1: [10 x 33], m2: [34 x 10] - PullRequest
1 голос
/ 04 апреля 2020

Я строю нейронную сеть для решения моей проблемы классификации, но по какой-то причине я получаю ошибку RuntimeError: несоответствие размера, m1: [10 x 33], m2: [34 x 10]. Я не понимаю, что я делаю не так. Вот мой код.

X_train= torch.tensor(X_train, dtype= torch.float)
X_test= torch.tensor(X_test, dtype= torch.float )
Y_train= torch.tensor(Y_train, dtype= torch.float).view(-1,1)
Y_test= torch.tensor(Y_test, dtype= torch.float).view(-1,1)

dataset= torch.utils.data.TensorDataset(X_train, Y_train)

train_iter = torch.utils.data.DataLoader(dataset, batch_size=10, shuffle=True)

import torch.nn.functional as F

class Network(nn.Module):
    def __init__(self):
        super().__init__()

        # Inputs to hidden layer linear transformation
        self.hidden = nn.Linear(34, 10)
        # Output layer, 10 units - one for each digit
        self.output = nn.Linear(10, 1)

        # Define sigmoid activation and softmax output 
        self.sigmoid_act = nn.Sigmoid()
        self.ReLU_act= nn.ReLU()

    def forward(self, x):
        # Pass the input tensor through each of our operations
        x = self.hidden(x)
        x = self.ReLU_act(x)
        x = self.output(x)
        x = self.sigmoid_act(x)

        return x

model= Network()
criterion = nn.BCELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.003)

epochs = 30
steps = 0

train_losses, test_losses = [], []
for e in range(epochs):
    running_loss = 0
    for images, labels in train_iter:

        optimizer.zero_grad()

        **log_ps = model(images)**
        loss = criterion(log_ps, labels)
        loss.backward()
        optimizer.step()

        running_loss += loss.item()

    else:
        test_loss = 0
        accuracy = 0

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...