LBFGS resulting in average of targets

I’m trying to utilize the LBFGS optimizer (knowing that it should converge based off a literature example), however my model converges to simply the average of my target values. Am I doing something wrong here?

    for epoch in range(num_epochs):
        MSE=0.0
        for data_sample in dataloader:
            input_data=data_sample[0]
            target=data_sample[1]
            batch_size=len(target)

            input_data=input_data.to(device)
            target=target.to(device)

            def closure():
                optimizer.zero_grad()
                output=model(input_data)
                loss=criterion(output,target)
                loss.backward()
                return loss

            loss=optimizer.step(closure)
            MSE+=loss.item()*batch_size

        MSE=MSE/dataset_size
        RMSE=np.sqrt(MSE)
        epoch_loss=RMSE
        print epoch_loss