Bibyutatsu / proGENTRL

Pytorch Lightning implementation of GENTRL
https://github.com/Bibyutatsu/GENTRL
MIT License
3 stars 1 forks source link

Please help how to slove Keyerror in this code. #8

Open 28YOGESH opened 1 year ago

28YOGESH commented 1 year ago

trainer.fit(model) # Training the model

LOCAL_RANK: 0 - CUDA_VISIBLE_DEVICES: [0]

| Name | Type | Params

0 | enc | RNNEncoder | 888 K 1 | dec | DilConvDecoder | 596 K 2 | lp | LP | 1.6 M

3.1 M Trainable params 0 Non-trainable params 3.1 M Total params 12.473 Total estimated model params size (MB)

Epoch 0: 0% 0/5333 [00:00<?, ?it/s]


KeyError Traceback (most recent call last) /tmp/ipykernel_679832/1077659130.py in ----> 1 trainer.fit(model) # Training the model

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py in fit(self, model, train_dataloaders, val_dataloaders, datamodule, ckpt_path) 518 model = _maybe_unwrap_optimized(model) 519 self.strategy._lightning_module = model --> 520 call._call_and_handle_interrupt( 521 self, self._fit_impl, model, train_dataloaders, val_dataloaders, datamodule, ckpt_path 522 )

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py in _call_and_handle_interrupt(trainer, trainer_fn, *args, kwargs) 42 return trainer.strategy.launcher.launch(trainer_fn, *args, trainer=trainer, *kwargs) 43 else: ---> 44 return trainer_fn(args, kwargs) 45 46 except _TunerExitException:

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py in _fit_impl(self, model, train_dataloaders, val_dataloaders, datamodule, ckpt_path) 557 model_connected=self.lightning_module is not None, 558 ) --> 559 self._run(model, ckpt_path=ckpt_path) 560 561 assert self.state.stopped

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py in _run(self, model, ckpt_path) 933 # RUN THE TRAINER 934 # ---------------------------- --> 935 results = self._run_stage() 936 937 # ----------------------------

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/trainer/trainer.py in _run_stage(self) 976 self._run_sanity_check() 977 with torch.autograd.set_detect_anomaly(self._detect_anomaly): --> 978 self.fit_loop.run() 979 return None 980 raise RuntimeError(f"Unexpected state {self.state}")

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/loops/fit_loop.py in run(self) 199 try: 200 self.on_advance_start() --> 201 self.advance() 202 self.on_advance_end() 203 self._restarting = False

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/loops/fit_loop.py in advance(self) 352 self._data_fetcher.setup(combined_loader) 353 with self.trainer.profiler.profile("run_training_epoch"): --> 354 self.epoch_loop.run(self._data_fetcher) 355 356 def on_advance_end(self) -> None:

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/loops/training_epoch_loop.py in run(self, data_fetcher) 131 while not self.done: 132 try: --> 133 self.advance(data_fetcher) 134 self.on_advance_end() 135 self._restarting = False

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/loops/training_epoch_loop.py in advance(self, data_fetcher) 216 if trainer.lightning_module.automatic_optimization: 217 # in automatic optimization, there can only be one optimizer --> 218 batch_output = self.automatic_optimization.run(trainer.optimizers[0], kwargs) 219 else: 220 batch_output = self.manual_optimization.run(kwargs)

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py in run(self, optimizer, kwargs) 183 # gradient update with accumulated gradients 184 else: --> 185 self._optimizer_step(kwargs.get("batch_idx", 0), closure) 186 187 result = closure.consume_result()

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py in _optimizer_step(self, batch_idx, train_step_and_backward_closure) 259 260 # model hook --> 261 call._call_lightning_module_hook( 262 trainer, 263 "optimizer_step",

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py in _call_lightning_module_hook(trainer, hook_name, pl_module, *args, *kwargs) 140 141 with trainer.profiler.profile(f"[LightningModule]{pl_module.class.name}.{hook_name}"): --> 142 output = fn(args, **kwargs) 143 144 # restore current_fx when nested context

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/core/module.py in optimizer_step(self, epoch, batch_idx, optimizer, optimizer_closure) 1263 pg["lr"] = lr_scale * self.learning_rate 1264 """ -> 1265 optimizer.step(closure=optimizer_closure) 1266 1267 def optimizer_zero_grad(self, epoch: int, batch_idx: int, optimizer: Optimizer) -> None:

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/core/optimizer.py in step(self, closure, kwargs) 156 157 assert self._strategy is not None --> 158 step_output = self._strategy.optimizer_step(self._optimizer, closure, kwargs) 159 160 self._on_after_step()

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/strategies/strategy.py in optimizer_step(self, optimizer, closure, model, kwargs) 222 # TODO(fabric): remove assertion once strategy's optimizer_step typing is fixed 223 assert isinstance(model, pl.LightningModule) --> 224 return self.precision_plugin.optimizer_step(optimizer, model=model, closure=closure, kwargs) 225 226 def _setup_model_and_optimizers(self, model: Module, optimizers: List[Optimizer]) -> Tuple[Module, List[Optimizer]]:

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/plugins/precision/precision_plugin.py in optimizer_step(self, optimizer, model, closure, kwargs) 112 """Hook to run the optimizer step.""" 113 closure = partial(self._wrap_closure, model, optimizer, closure) --> 114 return optimizer.step(closure=closure, kwargs) 115 116 def _clip_gradients(

~/anaconda3/lib/python3.9/site-packages/torch/optim/optimizer.py in wrapper(*args, *kwargs) 278 f"but got {result}.") 279 --> 280 out = func(args, **kwargs) 281 self._optimizer_step_code() 282

~/anaconda3/lib/python3.9/site-packages/torch/optim/optimizer.py in _use_grad(self, *args, *kwargs) 31 try: 32 torch.set_grad_enabled(self.defaults['differentiable']) ---> 33 ret = func(self, args, **kwargs) 34 finally: 35 torch.set_grad_enabled(prev_grad)

~/anaconda3/lib/python3.9/site-packages/torch/optim/adam.py in step(self, closure) 119 if closure is not None: 120 with torch.enable_grad(): --> 121 loss = closure() 122 123 for group in self.param_groups:

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/plugins/precision/precision_plugin.py in _wrap_closure(self, model, optimizer, closure) 99 consistent with the PrecisionPlugin subclasses that cannot pass optimizer.step(closure) directly. 100 """ --> 101 closure_result = closure() 102 self._after_closure(model, optimizer) 103 return closure_result

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py in call(self, *args, kwargs) 138 139 def call(self, *args: Any, *kwargs: Any) -> Optional[Tensor]: --> 140 self._result = self.closure(args, kwargs) 141 return self._result.loss 142

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py in closure(self, *args, *kwargs) 124 125 def closure(self, args: Any, **kwargs: Any) -> ClosureResult: --> 126 step_output = self._step_fn() 127 128 if step_output.closure_loss is None:

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/loops/optimization/automatic.py in _training_step(self, kwargs) 306 307 # manually capture logged metrics --> 308 training_step_output = call._call_strategy_hook(trainer, "training_step", *kwargs.values()) 309 self.trainer.strategy.post_training_step() 310

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/trainer/call.py in _call_strategy_hook(trainer, hook_name, *args, *kwargs) 286 287 with trainer.profiler.profile(f"[Strategy]{trainer.strategy.class.name}.{hook_name}"): --> 288 output = fn(args, **kwargs) 289 290 # restore current_fx when nested context

~/anaconda3/lib/python3.9/site-packages/pytorch_lightning/strategies/strategy.py in training_step(self, *args, *kwargs) 364 with self.precision_plugin.train_step_context(): 365 assert isinstance(self.model, TrainingStep) --> 366 return self.model.training_step(args, **kwargs) 367 368 def post_training_step(self) -> None:

~/Desktop/user/new_molecule/progentrl/gen_vaelp.py in training_step(self, batch, batch_idx) 133 def training_step(self, batch, batch_idx): 134 if self.current_epoch in [0, 1, 5] and batch_idx==0: --> 135 self.reinit_from_data() 136 137 x_batch, y_batch = batch

~/Desktop/user/new_molecule/progentrl/gen_vaelp.py in reinit_from_data(self) 102 103 if (self.buf is None) or (self.buf.shape[0] < 5000): --> 104 enc_out = self.enc(x_batch) 105 means, log_stds = torch.split(enc_out, 106 len(self.latent_descr),

~/anaconda3/lib/python3.9/site-packages/torch/nn/modules/module.py in _call_impl(self, *args, *kwargs) 1499 or _global_backward_pre_hooks or _global_backward_hooks 1500 or _global_forward_hooks or _global_forward_pre_hooks): -> 1501 return forward_call(args, **kwargs) 1502 # Do not call functions when jit is used 1503 full_backward_hooks, non_full_backward_hooks = [], []

~/Desktop/user/new_molecule/progentrl/encoder.py in forward(self, sm_list) 24 """ 25 ---> 26 tokens, lens = encode(sm_list) 27 to_feed = tokens.transpose(1, 0).to(self.embs.weight.device) 28

~/Desktop/user/new_molecule/progentrl/tokenizer.py in encode(sm_list, pad_size) 62 lens = [] 63 for s in sm_list: ---> 64 tokens = ([1] + [__t2i[tok] 65 for tok in smiles_tokenizer(s)])[:pad_size - 1] 66 lens.append(len(tokens))

~/Desktop/user/new_molecule/progentrl/tokenizer.py in (.0) 62 lens = [] 63 for s in sm_list: ---> 64 tokens = ([1] + [__t2i[tok] 65 for tok in smiles_tokenizer(s)])[:pad_size - 1] 66 lens.append(len(tokens))

KeyError: '7'