|
|
import os
|
|
|
import sys
|
|
|
|
|
|
from tensorboardX import SummaryWriter
|
|
|
from datetime import datetime
|
|
|
|
|
|
|
|
|
class Logger(object):
|
|
|
def __init__(self, val=True, filename="print.log"):
|
|
|
self.Time = datetime.now().strftime('%Y-%m-%d_%H%M')
|
|
|
self.path = 'output/' + self.Time
|
|
|
self.log_filename = filename
|
|
|
os.makedirs(self.path) if os.path.exists(self.path) is False else None
|
|
|
self.run_path = '{}/{}'.format(self.path, 'tb')
|
|
|
|
|
|
|
|
|
self.terminal = sys.stdout
|
|
|
self.terminal.write(self.path)
|
|
|
|
|
|
|
|
|
self.train_writer = None
|
|
|
self.val_writer = None
|
|
|
self.tensorboard_init(val)
|
|
|
|
|
|
def printlog(self, message):
|
|
|
message = str(message)
|
|
|
self.terminal.write(message + '\n')
|
|
|
|
|
|
log = open(os.path.join(self.path, self.log_filename), "a", encoding='utf8', )
|
|
|
log.write(message + '\n')
|
|
|
log.close()
|
|
|
|
|
|
def tensorboard_init(self, val=True):
|
|
|
if val:
|
|
|
self.train_writer = SummaryWriter(self.run_path+'/train')
|
|
|
self.val_writer = SummaryWriter(self.run_path+'/val')
|
|
|
else:
|
|
|
self.train_writer = SummaryWriter(self.run_path)
|
|
|
|
|
|
def get_path(self):
|
|
|
return self.path
|
|
|
|