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