For some reason when I try to initialize the optimizer and write
self.model.parameters()
I get an AttributeError:
'StableDiffusionPipeline' object has no attribute 'parameters'
This my model :
class StableDiffusionFineTuner(pl.LightningModule):
def __init__(self):
super().__init__()
self.model_id = "runwayml/stable-diffusion-v1-5"
self.model = StableDiffusionPipeline.from_pretrained(self.model_id, torch_dtype=torch.float16).to("cuda")
self.loss = torch.nn.MSELoss()
self.optimizer = torch.optim.Adam(self.model.parameters(),lr=1e-5,weight_decay=(1e-2,),betas=(0.9,0.999),eps=1e-08)
def forward(self, input_text):
return self.model(input_text).images[0]
def training_step(self, batch, batch_idx):
images, texts = batch
outputs = self.forward(texts)
loss = self.loss(outputs, images)
self.log("train_loss", loss)
return loss
def validation_step(self, batch, batch_idx):
images, texts = batch
outputs = self.forward(texts)
loss = self.loss(outputs, images)
self.log("val_loss", loss)
return loss
def configure_optimizers(self):
optimizer = self.optimizer
return optimizer
I assume that this error is not related to my garbage code, but more of a system error. If anyone can point out the cause of this error and help me figure out what the problem is, I would be very grateful.