(self, iterable, print_freq, header=None)
| 113 | self.meters[name] = meter |
| 114 | |
| 115 | def log_every(self, iterable, print_freq, header=None): |
| 116 | i = 0 |
| 117 | if not header: |
| 118 | header = '' |
| 119 | start_time = time.time() |
| 120 | end = time.time() |
| 121 | iter_time = SmoothedValue(fmt='{avg:.4f}') |
| 122 | data_time = SmoothedValue(fmt='{avg:.4f}') |
| 123 | space_fmt = ':' + str(len(str(len(iterable)))) + 'd' |
| 124 | log_msg = [ |
| 125 | header, |
| 126 | '[{0' + space_fmt + '}/{1}]', |
| 127 | 'eta: {eta}', |
| 128 | '{meters}', |
| 129 | 'time: {time}', |
| 130 | 'data: {data}' |
| 131 | ] |
| 132 | if torch.cuda.is_available(): |
| 133 | log_msg.append('max mem: {memory:.0f}') |
| 134 | log_msg = self.delimiter.join(log_msg) |
| 135 | MB = 1024.0 * 1024.0 |
| 136 | for obj in iterable: |
| 137 | data_time.update(time.time() - end) |
| 138 | yield obj |
| 139 | iter_time.update(time.time() - end) |
| 140 | if i % print_freq == 0 or i == len(iterable) - 1: |
| 141 | eta_seconds = iter_time.global_avg * (len(iterable) - i) |
| 142 | eta_string = str(datetime.timedelta(seconds=int(eta_seconds))) |
| 143 | if torch.cuda.is_available(): |
| 144 | print(log_msg.format( |
| 145 | i, len(iterable), eta=eta_string, |
| 146 | meters=str(self), |
| 147 | time=str(iter_time), data=str(data_time), |
| 148 | memory=torch.cuda.max_memory_allocated() / MB)) |
| 149 | else: |
| 150 | print(log_msg.format( |
| 151 | i, len(iterable), eta=eta_string, |
| 152 | meters=str(self), |
| 153 | time=str(iter_time), data=str(data_time))) |
| 154 | i += 1 |
| 155 | end = time.time() |
| 156 | total_time = time.time() - start_time |
| 157 | total_time_str = str(datetime.timedelta(seconds=int(total_time))) |
| 158 | print('{} Total time: {} ({:.4f} s / it)'.format( |
| 159 | header, total_time_str, total_time / len(iterable))) |
| 160 | |
| 161 | |
| 162 | def _load_checkpoint_for_ema(model_ema, checkpoint): |
no test coverage detected