Thank you for everything. With my edited code, stuff seems to working right, except for one problem.
AttributeError: 'tuple' object has no attribute 'size'

After a long list, I get this. The program works for a simple test random tensor but running it seems to give me a problem.
Following is my code (Sorry for the confusing variable names)
class NN (nn.Module):

    def __init__(self, input_size, output_size):

        super(NN, self).__init__()

        self.flatten = nn.Flatten()

        self.LinearStack = nn.Sequential(

            nn.Linear(input_size, 300),

            nn.ReLU(),

            nn.Linear(300, 300),

            nn.ReLU(),

            nn.Linear(300, 256),

            nn.ReLU(),

            nn.Linear(256, 256),

            nn.ReLU(),

            nn.Linear(256, 150),

            nn.ReLU(),

            nn.Linear(150,100),

            nn.ReLU(),

            nn.Linear(100,75),

            nn.ReLU(),

            nn.Linear(75, output_size),

            nn.ReLU()

        )

    def forward (self,out):

        logits = self.LinearStack(out)

        return logits

model = NN(150528,1)

y_label, imagepre = dataset.__getitem__(1)

print (y_label)

print (imagepre)

imagetun = torch.from_numpy(imagepre)

print(imagetun.shape)

imagetuun = imagetun.reshape(1, 150528)

imagework = imagetuun.float() 

Pred112 = model(imagework)

print(Pred112)

loss_func = nn.CrossEntropyLoss()

optimiser = optim.SGD(model.parameters(), lr = 0.001)

epochs = 2

def run (loss_fn, dataloader, model):

    size = dataset.__len__()

    for y_label in enumerate(dataloader):

        image = torch.from_numpy(imagepre)

        imagetuun = image.reshape(1, 150528)

        imagework = imagetuun.float() 

        Pred = model(imagework)

        print (Pred)

        # Loss

        loss = loss_fn(Pred, y_label)

        # Backprop

        optimiser.zero_grad()

        loss.backward()

        optimiser.step()

        

        print (loss)

for t in range(epochs):

    print ("Epoch #######################")

    run(loss_func, dataloader, model)

print ("Done")

Thanks for everything so far, everything @eqy  and @ptrblck  have said seems to work. just this one problem.