After trying out several workaround to this problem , I am still stuck with this error message. I have a very basic Neural network called “Neuralnetwork”.
class Neuralnetwork(nn.Module): def __init__(self, in_features): super().__init__() self.disc = nn.Sequential( nn.Linear(in_features, 4), #change it to 4 neurons nn.LeakyReLU(0.01), nn.Linear(4, 1), nn.Sigmoid(), ) def forward(self, x): return self.disc(x)
I have few samples to feed into the neural network. The samples are defined as follow -
samples = [torch.tensor([1,0,0,1],dtype=torch.long), torch.tensor([0.9,0.1,0.2,0.8],dtype=torch.long), torch.tensor([0.9,0.2,0.1,0.8],dtype=torch.long), torch.tensor([0.8,0.1,0.2,0.9],dtype=torch.long), torch.tensor([0.8,0.2,0.1,0.9],dtype=torch.long)]
So when I train the neural network with each of the sample fromt he samples, I get the error -
image_dim=4 disc=Neuralnetwork(image_dim) criterion=nn.BCELoss() for epoch in range(epochs): for sample in samples: disc_train=disc(sample) ##This line is generating the error "RuntimeError: expected scalar type Long but found Float"
In order to look for a solution I have also taken the following measure but no luck -
sample= sample.type(torch.LongTensor) disc_train=disc(sample)