We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
class Classifier(pl.LightningModule): def __init__(self): super().__init__() self.MFB = MFB(512,768,True,256,64,0.1) self.fin_y_shape = torch.nn.Linear(768,512) self.fin_old = torch.nn.Linear(64,2) self.fin = torch.nn.Linear(16 * 768, 64) self.fin_inten = torch.nn.Linear(64,6) self.fin_e1 = torch.nn.Linear(64,2) self.fin_e2 = torch.nn.Linear(64,2) self.fin_e3 = torch.nn.Linear(64,2) self.fin_e4 = torch.nn.Linear(64,2) self.fin_e5 = torch.nn.Linear(64,2) self.fin_e6 = torch.nn.Linear(64,2) self.fin_e7 = torch.nn.Linear(64,2) self.fin_e8 = torch.nn.Linear(64,2) self.fin_e9 = torch.nn.Linear(64,2) self.validation_step_outputs = [] self.test_step_outputs = [] def forward(self, x,y,rag): x_,y_,rag_ = x,y,rag print("x.shape", x.shape) z = self.MFB(torch.unsqueeze(y, axis=1), torch.unsqueeze(x, axis=1)) z_rag = self.MFB(torch.unsqueeze(y, axis=1), torch.unsqueeze(rag, axis=1)) z_newe = torch.cat((z, z_rag), dim=1) z_new = torch.squeeze(z_newe, dim=1) c_inten = self.fin_inten(z_new) c_e1 = self.fin_e1(z_new) c_e2 = self.fin_e2(z_new) c_e3 = self.fin_e3(z_new) c_e4 = self.fin_e4(z_new) c_e5 = self.fin_e5(z_new) c_e6 = self.fin_e6(z_new) c_e7 = self.fin_e7(z_new) c_e8 = self.fin_e8(z_new) c_e9 = self.fin_e9(z_new) c = self.fin_old(z_new) output = torch.log_softmax(c, dim=1) c_inten = torch.log_softmax(c_inten, dim=1) c_e1 = torch.log_softmax(c_e1, dim=1) c_e2 = torch.log_softmax(c_e2, dim=1) c_e3 = torch.log_softmax(c_e3, dim=1) c_e4 = torch.log_softmax(c_e4, dim=1) c_e5 = torch.log_softmax(c_e5, dim=1) c_e6 = torch.log_softmax(c_e6, dim=1) c_e7 = torch.log_softmax(c_e7, dim=1) c_e8 = torch.log_softmax(c_e8, dim=1) c_e9 = torch.log_softmax(c_e9, dim=1) return output,c_inten,c_e1,c_e2,c_e3,c_e4,c_e5,c_e6,c_e7,c_e8,c_e9 def cross_entropy_loss(self, logits, labels): return F.nll_loss(logits, labels) def contrastive_loss(self, z, z_rag, label, margin=1.0): euclidean_distance = F.pairwise_distance(z1, z2) loss_contrastive = torch.mean((1 - label) * torch.pow(euclidean_distance, 2) + (label) * torch.pow(torch.clamp(margin - euclidean_distance, min=0.0), 2)) return loss_contrastive def training_step(self, train_batch, batch_idx): lab,txt,rag,img,name,intensity,e1,e2,e3,e4,e5,e6,e7,e8,e9 = train_batch lab = train_batch[lab] #print(lab) txt = train_batch[txt] rag = train_batch[rag] img = train_batch[img] name= train_batch[name] intensity = train_batch[intensity] e1 = train_batch[e1] e2 = train_batch[e2] e3 = train_batch[e3] e4 = train_batch[e4] e5 = train_batch[e5] e6 = train_batch[e6] e7 = train_batch[e7] e8 = train_batch[e8] e9 = train_batch[e9] logit_offen,logit_inten_target,a,b,c,d,e,f,g,h,i= self.forward(txt,img,rag) loss1 = self.cross_entropy_loss(logit_offen, lab) loss4 = self.cross_entropy_loss(a, e1) loss5 = self.cross_entropy_loss(b, e2) loss6 = self.cross_entropy_loss(c, e3) loss7 = self.cross_entropy_loss(d, e4) loss8 = self.cross_entropy_loss(e, e5) loss9 = self.cross_entropy_loss(f, e6) loss10 = self.cross_entropy_loss(g, e7) loss11 = self.cross_entropy_loss(h, e8) loss12 = self.cross_entropy_loss(i, e9) loss17 = self.cross_entropy_loss(logit_inten_target, intensity) contrastive_labels = (lab == 1).float() loss_contrastive = self.contrastive_loss(z, z_rag, contrastive_labels) loss = loss1 + loss4 + loss5 + loss6 + loss7 + loss8 +loss9 + loss10 + loss11 + loss12 + loss17 + loss_contrastive self.log('train_loss', loss) return loss def validation_step(self, val_batch, batch_idx): #lab,txt,rag,img,name,per,iro,alli,ana,inv,meta,puns,sat,hyp = val_batch lab,txt,rag,img,name,intensity,e1,e2,e3,e4,e5,e6,e7,e8,e9= val_batch lab = val_batch[lab] #print(lab) txt = val_batch[txt] rag = val_batch[rag] img = val_batch[img] name = val_batch[name] intensity = val_batch[intensity] e1 = val_batch[e1] e2 = val_batch[e2] e3 = val_batch[e3] e4 = val_batch[e4] e5 = val_batch[e5] e6 = val_batch[e6] e7 = val_batch[e7] e8 = val_batch[e8] e9 = val_batch[e9] logits,inten,a,b,c,d,e,f,g,h,i = self.forward(txt,img,rag) logits=logits.float() tmp = np.argmax(logits.detach().cpu().numpy(),axis=1) loss = self.cross_entropy_loss(logits, lab) lab = lab.detach().cpu().numpy() self.log('val_acc', accuracy_score(lab,tmp)) self.log('val_roc_auc',roc_auc_score(lab,tmp)) self.log('val_loss', loss) tqdm_dict = {'val_acc': accuracy_score(lab,tmp)} self.validation_step_outputs.append({'progress_bar': tqdm_dict,'val_f1 offensive': f1_score(lab,tmp,average='macro')}) return { 'progress_bar': tqdm_dict, 'val_f1 offensive': f1_score(lab,tmp,average='macro') } def on_validation_epoch_end(self): outs = [] outs14=[] for out in self.validation_step_outputs: outs.append(out['progress_bar']['val_acc']) outs14.append(out['val_f1 offensive']) self.log('val_acc_all_offn', sum(outs)/len(outs)) self.log('val_f1 offensive', sum(outs14)/len(outs14)) print(f'***val_acc_all_offn at epoch end {sum(outs)/len(outs)}****') print(f'***val_f1 offensive at epoch end {sum(outs14)/len(outs14)}****') self.validation_step_outputs.clear() def test_step(self, batch, batch_idx): lab,txt,rag,img,name,intensity,e1,e2,e3,e4,e5,e6,e7,e8,e9= batch #lab,txt,rag,img,name,per,iro,alli,ana,inv,meta,puns,sat,hyp= batch lab = batch[lab] #print(lab) txt = batch[txt] rag = batch[rag] img = batch[img] name = batch[name] intensity = batch[intensity] e1 = batch[e1] e2 = batch[e2] e3 = batch[e3] e4 = batch[e4] e5 = batch[e5] e6 = batch[e6] e7 = batch[e7] e8 = batch[e8] e9 = batch[e9] logits,inten,a,b,c,d,e,f,g,h,i= self.forward(txt,img,rag) logits = logits.float() tmp = np.argmax(logits.detach().cpu().numpy(force=True),axis=-1) loss = self.cross_entropy_loss(logits, lab) lab = lab.detach().cpu().numpy() self.log('test_acc', accuracy_score(lab,tmp)) self.log('test_roc_auc',roc_auc_score(lab,tmp)) self.log('test_loss', loss) tqdm_dict = {'test_acc': accuracy_score(lab,tmp)} self.test_step_outputs.append({'progress_bar': tqdm_dict,'test_acc': accuracy_score(lab,tmp), 'test_f1_score': f1_score(lab,tmp,average='macro')}) return { 'progress_bar': tqdm_dict, 'test_acc': accuracy_score(lab,tmp), 'test_f1_score': f1_score(lab,tmp,average='macro') } def on_test_epoch_end(self): # OPTIONAL outs = [] outs1,outs2,outs3,outs4,outs5,outs6,outs7,outs8,outs9,outs10,outs11,outs12,outs13,outs14 = \ [],[],[],[],[],[],[],[],[],[],[],[],[],[] for out in self.test_step_outputs: outs.append(out['test_acc']) outs2.append(out['test_f1_score']) self.log('test_acc', sum(outs)/len(outs)) self.log('test_f1_score', sum(outs2)/len(outs2)) self.test_step_outputs.clear() def configure_optimizers(self): # optimizer = torch.optim.Adam(self.parameters(), lr=3e-2) optimizer = torch.optim.Adam(self.parameters(), lr=1e-5) return optimizer """ Main Model: Initialize Forward Pass Training Step Validation Step Testing Step Pp """ class HmDataModule(pl.LightningDataModule): def setup(self, stage): self.hm_train = t_p self.hm_val = v_p # self.hm_test = test self.hm_test = te_p def train_dataloader(self): return DataLoader(self.hm_train, batch_size=20, drop_last=True) def val_dataloader(self): return DataLoader(self.hm_val, batch_size=20, drop_last=True) def test_dataloader(self): return DataLoader(self.hm_test, batch_size=20, drop_last=True) data_module = HmDataModule() checkpoint_callback = ModelCheckpoint( monitor='val_acc_all_offn', dirpath='mrinal/', filename='epoch{epoch:02d}-val_f1_all_offn{val_acc_all_offn:.2f}', auto_insert_metric_name=False, save_top_k=1, mode="max", ) all_callbacks = [] all_callbacks.append(checkpoint_callback) # train from pytorch_lightning import seed_everything seed_everything(42, workers=True) hm_model = Classifier() gpus=1 #if torch.cuda.is_available():gpus=0 trainer = pl.Trainer(deterministic=True,max_epochs=20,precision=16,callbacks=all_callbacks) trainer.fit(hm_model, data_module)
NFO:lightning_fabric.utilities.seed:Seed set to 42 INFO:pytorch_lightning.utilities.rank_zero:Using bfloat16 Automatic Mixed Precision (AMP) INFO:pytorch_lightning.utilities.rank_zero:GPU available: False, used: False INFO:pytorch_lightning.utilities.rank_zero:TPU available: False, using: 0 TPU cores INFO:pytorch_lightning.utilities.rank_zero:IPU available: False, using: 0 IPUs INFO:pytorch_lightning.utilities.rank_zero:HPU available: False, using: 0 HPUs INFO:pytorch_lightning.callbacks.model_summary: | Name | Type | Params ---------------------------------------- 0 | MFB | MFB | 21.0 M 1 | fin_y_shape | Linear | 393 K 2 | fin_old | Linear | 130 3 | fin | Linear | 786 K 4 | fin_inten | Linear | 390 5 | fin_e1 | Linear | 130 6 | fin_e2 | Linear | 130 7 | fin_e3 | Linear | 130 8 | fin_e4 | Linear | 130 9 | fin_e5 | Linear | 130 10 | fin_e6 | Linear | 130 11 | fin_e7 | Linear | 130 12 | fin_e8 | Linear | 130 13 | fin_e9 | Linear | 130 ---------------------------------------- 22.2 M Trainable params 0 Non-trainable params 22.2 M Total params 88.745 Total estimated model params size (MB) x.shape torch.Size([20, 768]) --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) [<ipython-input-43-c76eb94fa135>](https://localhost:8080/#) in <cell line: 266>() 264 #if torch.cuda.is_available():gpus=0 265 trainer = pl.Trainer(deterministic=True,max_epochs=20,precision=16,callbacks=all_callbacks) --> 266 trainer.fit(hm_model, data_module) 13 frames [/usr/local/lib/python3.10/dist-packages/torch/nn/functional.py](https://localhost:8080/#) in nll_loss(input, target, weight, size_average, ignore_index, reduce, reduction) 2702 if size_average is not None or reduce is not None: 2703 reduction = _Reduction.legacy_get_string(size_average, reduce) -> 2704 return torch._C._nn.nll_loss_nd(input, target, weight, _Reduction.get_enum(reduction), ignore_index) 2705 2706 RuntimeError: Expected target size [20, 2], got [20] Sanity Checking DataLoader 0:
The text was updated successfully, but these errors were encountered:
Can Anyone help me to solve the issues , I am facing in the pytorch
Sorry, something went wrong.
No branches or pull requests
The text was updated successfully, but these errors were encountered: