Hello! This is probably something silly but I am confused about why the input to my NN doesn’t work. This is the network.
class SimpleNet(nn.Module):
def __init__(self, ni):
super().__init__()
self.linear1 = nn.Linear(ni, 128)
self.bn1 = nn.BatchNorm1d(128)
self.linear2 = nn.Linear(128, 128)
self.bn2 = nn.BatchNorm1d(128)
self.linear3 = nn.Linear(128, 64)
self.bn3 = nn.BatchNorm1d(64)
self.linear4 = nn.Linear(64,64)
self.bn4 = nn.BatchNorm1d(64)
self.linear5 = nn.Linear(64,1)
def forward(self, x):
x = F.tanh(self.bn1(self.linear1(x)))
x = F.tanh(self.bn2(self.linear2(x)))
x = F.tanh(self.bn3(self.linear3(x)))
x = F.tanh(self.bn4(self.linear4(x)))
x = self.linear5(x)
return x
n_variables = 2
model = SimpleNet(n_variables).cuda()
If I run
dt = torch.tensor([[1, 2],[3, 4]]).float().cuda()
model(dt)
it works fine. But for my case I need to pass one input at a time (after training) and when I do this:
dt = torch.tensor([[1, 2]]).float().cuda()
model(dt)
I am getting this error: Expected more than 1 value per channel when training, got input size torch.Size([1, 128])
What am I doing wrong? Thank you!