Keras - failure to create TensorBoard directory

Viewed 5593

I am trying to create multiple graphs in TensorBoard by saving in separate sub directories, similar to as described here.

However I seem to get an error on the callback - I'm not sure why it is erroring.

Callback:

tensorboard = TensorBoard(log_dir=f"./logs/MODEL", histogram_freq=1,
                                  write_grads=True)

Error:

Traceback (most recent call last):
  File "C:\Users\Ad\AppData\Local\conda\conda\envs\coda\lib\site-packages\IPython\core\interactiveshell.py", line 2963, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-3-7fb3ff8a6fa3>", line 46, in <module>
    validation_split=0.2, callbacks=[tensorboard, metrics])
  File "C:\Users\Ad\AppData\Local\conda\conda\envs\coda\lib\site-packages\keras\engine\training.py", line 1657, in fit
    validation_steps=validation_steps)
  File "C:\Users\Ad\AppData\Local\conda\conda\envs\coda\lib\site-packages\keras\engine\training.py", line 1145, in _fit_loop
    callbacks.set_model(callback_model)
  File "C:\Users\Ad\AppData\Local\conda\conda\envs\coda\lib\site-packages\keras\callbacks.py", line 48, in set_model
    callback.set_model(model)
  File "C:\Users\Ad\AppData\Local\conda\conda\envs\coda\lib\site-packages\keras\callbacks.py", line 710, in set_model
    self.sess.graph)
  File "C:\Users\Ad\AppData\Local\conda\conda\envs\coda\lib\site-packages\tensorflow\python\summary\writer\writer.py", line 336, in __init__
    filename_suffix)
  File "C:\Users\Ad\AppData\Local\conda\conda\envs\coda\lib\site-packages\tensorflow\python\summary\writer\event_file_writer.py", line 67, in __init__
    gfile.MakeDirs(self._logdir)
  File "C:\Users\Ad\AppData\Local\conda\conda\envs\coda\lib\site-packages\tensorflow\python\lib\io\file_io.py", line 368, in recursive_create_dir
    pywrap_tensorflow.RecursivelyCreateDir(compat.as_bytes(dirname), status)
  File "C:\Users\Ad\AppData\Local\conda\conda\envs\coda\lib\site-packages\tensorflow\python\framework\errors_impl.py", line 473, in __exit__
    c_api.TF_GetCode(self.status.status))
tensorflow.python.framework.errors_impl.InvalidArgumentError: Failed to create a directory: ./logs/1-LTSM-NODES-32-DENSE-1: 1535276781.0160034; Invalid argument
3 Answers

I had the same problem. I changed the / to \ and it worked

This worked for me in Windows

log_dir="logs\\model\\"

Had this very same problem. The solution in my case was to wrap the path with Path (from pathlib module) object - it fixes and normalizes all path slashes problems (works both on Windows and Linux build agent), e.g. :

from pathlib import Path
training_log_dir_path = Path((os.path.join(getRootDir(), log_dir, 't-', mversion)))
training_log_dir = str(training_log_dir_path)
Related