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