import os import gradio as gr from easygui import msgbox import subprocess import time tensorboard_proc = None # I know... bad but heh TENSORBOARD = 'tensorboard' if os.name == 'posix' else 'tensorboard.exe' def start_tensorboard(logging_dir): global tensorboard_proc if not os.listdir(logging_dir): print('Error: log folder is empty') msgbox(msg='Error: log folder is empty') return run_cmd = [f'{TENSORBOARD}', '--logdir', f'{logging_dir}'] print(run_cmd) if tensorboard_proc is not None: print( 'Tensorboard is already running. Terminating existing process before starting new one...' ) stop_tensorboard() # Start background process print('Starting tensorboard...') tensorboard_proc = subprocess.Popen(run_cmd) # Wait for some time to allow TensorBoard to start up time.sleep(5) # Open the TensorBoard URL in the default browser print('Opening tensorboard url in browser...') import webbrowser webbrowser.open('http://localhost:6006') def stop_tensorboard(): print('Stopping tensorboard process...') tensorboard_proc.kill() print('...process stopped') def gradio_tensorboard(): with gr.Row(): button_start_tensorboard = gr.Button('Start tensorboard') button_stop_tensorboard = gr.Button('Stop tensorboard') return (button_start_tensorboard, button_stop_tensorboard)