Я строю нейронную сеть для решения моей проблемы классификации, но по какой-то причине я получаю ошибку 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
Я получаю сообщение об ошибке в строке, выделенное жирным шрифтом. Пожалуйста, помогите мне решить это. Я застрял на нем почти на день. Я новичок в нейронных сетях.