(model_engine, eval_dataloader, eval_gradient_accumulation_steps, quantile, pbar=None)
| 174 | |
| 175 | |
| 176 | def evaluate_single(model_engine, eval_dataloader, eval_gradient_accumulation_steps, quantile, pbar=None): |
| 177 | eval_dataloader.set_eval_quantile(quantile) |
| 178 | total_loss = 0 |
| 179 | count = 0 |
| 180 | while True: |
| 181 | model_engine.reset_activation_shape() |
| 182 | iterator = get_data_iterator_for_step(eval_dataloader, model_engine, num_micro_batches=eval_gradient_accumulation_steps) |
| 183 | loss = model_engine.eval_batch(iterator, num_micro_batches=eval_gradient_accumulation_steps).item() |
| 184 | eval_dataloader.sync_epoch() |
| 185 | if pbar: |
| 186 | pbar.update(1) |
| 187 | total_loss += loss |
| 188 | count += 1 |
| 189 | if eval_dataloader.epoch == 2: |
| 190 | break |
| 191 | |
| 192 | eval_dataloader.reset() |
| 193 | return total_loss / count |
| 194 | |
| 195 | |
| 196 | def _evaluate(model_engine, eval_dataloaders, tb_writer, step, eval_gradient_accumulation_steps): |
no test coverage detected