MCPcopy Create free account
hub / github.com/MotrixLab/AiOS / log_every

Method log_every

util/misc.py:235–292  ·  view source on GitHub ↗
(self, iterable, print_freq, header=None, logger=None)

Source from the content-addressed store, hash-verified

233 self.meters[name] = meter
234
235 def log_every(self, iterable, print_freq, header=None, logger=None):
236 if logger is None:
237 print_func = print
238 else:
239 print_func = logger.info
240
241 i = 0
242 if not header:
243 header = ''
244 start_time = time.time()
245 end = time.time()
246 iter_time = SmoothedValue(fmt='{avg:.4f}')
247 data_time = SmoothedValue(fmt='{avg:.4f}')
248 space_fmt = ':' + str(len(str(len(iterable)))) + 'd'
249 if torch.cuda.is_available():
250 log_msg = self.delimiter.join([
251 header, '[{0' + space_fmt + '}/{1}]', 'eta: {eta}', '{meters}',
252 'time: {time}', 'data: {data}', 'max mem: {memory:.0f}'
253 ])
254 else:
255 log_msg = self.delimiter.join([
256 header, '[{0' + space_fmt + '}/{1}]', 'eta: {eta}', '{meters}',
257 'time: {time}', 'data: {data}'
258 ])
259 MB = 1024.0 * 1024.0
260
261 for obj in iterable:
262 data_time.update(time.time() - end)
263 yield obj
264 # import pdb; pdb.set_trace()
265 iter_time.update(time.time() - end)
266 if i % print_freq == 0 or i == len(iterable) - 1:
267 eta_seconds = iter_time.global_avg * (len(iterable) - i)
268 eta_string = str(datetime.timedelta(seconds=int(eta_seconds)))
269 if torch.cuda.is_available():
270 print_func(
271 log_msg.format(
272 i,
273 len(iterable),
274 eta=eta_string,
275 meters=str(self),
276 time=str(iter_time),
277 data=str(data_time),
278 memory=torch.cuda.max_memory_allocated() / MB))
279 else:
280 print_func(
281 log_msg.format(i,
282 len(iterable),
283 eta=eta_string,
284 meters=str(self),
285 time=str(iter_time),
286 data=str(data_time)))
287 i += 1
288 end = time.time()
289 total_time = time.time() - start_time
290 total_time_str = str(datetime.timedelta(seconds=int(total_time)))
291 print_func('{} Total time: {} ({:.4f} s / it)'.format(
292 header, total_time_str, total_time / len(iterable)))

Callers 3

train_one_epochFunction · 0.95
evaluateFunction · 0.95
inferenceFunction · 0.95

Calls 2

updateMethod · 0.95
SmoothedValueClass · 0.85

Tested by

no test coverage detected