我遵循了相同的教程,这是我为使其工作而做的事情:
这是ModifiedTensorBoard类:
class ModifiedTensorBoard(TensorBoard):
# Overriding init to set initial step and writer (we want one log file for all .fit() calls)
def __init__(self,**kwargs):
super().__init__(**kwargs)
self.step = 1
self.writer = tf.summary.create_file_writer(self.log_dir)
self._log_write_dir = os.path.join(self.log_dir,MODEL_NAME)
# Overriding this method to stop creating default log writer
def set_model(self,model):
pass
# Overrided,saves logs with our step number
# (otherwise every .fit() will start writing from 0th step)
def on_epoch_end(self,epoch,logs=None):
self.update_stats(**logs)
# Overrided
# We train for one batch only,no need to save anything at epoch end
def on_batch_end(self,batch,logs=None):
pass
# Overrided,so won't close writer
def on_train_end(self,_):
pass
def on_train_batch_end(self,logs=None):
pass
# Custom method for saving own metrics
# Creates writer,writes custom metrics and closes writer
def update_stats(self,**stats):
self._write_logs(stats,self.step)
def _write_logs(self,logs,index):
with self.writer.as_default():
for name,value in logs.items():
tf.summary.scalar(name,value,step=index)
self.step += 1
self.writer.flush()
,
以下代码适用于 TensorFlow 2.4.1 :
class ModifiedTensorBoard(TensorBoard):
def __init__(self,**kwargs):
super().__init__(**kwargs)
self.step = 1
self.writer = tf.summary.create_file_writer(self.log_dir)
self._log_write_dir = self.log_dir
def set_model(self,model):
self.model = model
self._train_dir = os.path.join(self._log_write_dir,'train')
self._train_step = self.model._train_counter
self._val_dir = os.path.join(self._log_write_dir,'validation')
self._val_step = self.model._test_counter
self._should_write_train_graph = False
def on_epoch_end(self,logs=None):
self.update_stats(**logs)
def on_batch_end(self,logs=None):
pass
def on_train_end(self,_):
pass
def update_stats(self,**stats):
with self.writer.as_default():
for key,value in stats.items():
tf.summary.scalar(key,step = self.step)
self.writer.flush()
只需按原样复制并粘贴上面的代码,它应该可以工作
本文链接:https://www.f2er.com/3159584.html