This model definition:
class Initialise(nn.Module):
    def __init__(self):
        super(Initialise, self).__init__()
        self.encoder = nn.Sequential(nn.Linear(28*28*3, 256), nn.ReLU())


    def forward(self, x):
        x = self.encoder(x)
        
        return x
		
		
		
model= Initialise()
model.add_module('classifier', nn.Sequential(nn.Linear(256, 100),nn.LogSoftmax(dim=1)))

won’t use the classifier submodules, as Initialise is not using it in its forward method as can be seen here:
x = torch.randn(1, 2352)
out = model(x)
print(out.shape)
> torch.Size([1, 256])

You could use a placeholder module and replace it via:
class Initialise(nn.Module):
    def __init__(self):
        super(Initialise, self).__init__()
        self.encoder = nn.Sequential(nn.Linear(28*28*3, 256), nn.ReLU())
        self.classifier = nn.Identity()

    def forward(self, x):
        x = self.encoder(x)
        x = self.classifier(x)
        return x
		
		

model= Initialise()
model.classifier = nn.Sequential(nn.Linear(256, 100),nn.LogSoftmax(dim=1))

x = torch.randn(1, 2352)
out = model(x)
print(out.shape)
> torch.Size([1, 100])

You could also save and load the state_dict via:
torch.save(model.state_dict(), 'tmp.pt')
model = Initialise()
model.classifier = nn.Sequential(nn.Linear(256, 100),nn.LogSoftmax(dim=1))
model.load_state_dict(torch.load('tmp.pt'))

Note however, that the replacement of the nn.Identity() module would still be necessary.
Let me know, if this would work for you.