machine learning

Tensorboard 사용하기

ksyke 2024. 7. 8. 11:00

목차

    
    import tensorflow as tf  
    from tensorflow.keras.callbacks import TensorBoard  
    import numpy as np  
    import datetime  
    
    # Define the model  
    model = tf.keras.Sequential(\[  
        tf.keras.layers.Dense(10, activation='relu', input\_shape=(10,)),  
        tf.keras.layers.Dense(1)  
    \])  
    
    model.compile(optimizer='adam', loss='mse')  
    
    # Generate dummy data  
    data = np.random.random((1000, 10))  
    labels = np.random.random((1000, 1))  
    
    # Custom TensorBoard callback  
    class CustomTensorBoardCallback(tf.keras.callbacks.Callback):  
        def \_\_init\_\_(self, log\_dir):  
            super(CustomTensorBoardCallback, self).\_\_init\_\_()  
            self.log\_dir = log\_dir  
            self.writer = tf.summary.create\_file\_writer(log\_dir)  
    
        def write\_log(self, name, loss, batch\_no):  
            with self.writer.as\_default():  
                tf.summary.scalar(name, loss, step=batch\_no)  
                self.writer.flush()  
    
    # Define log directory  
    log\_dir = "logs/fit/" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S")  
    
    # Instantiate the custom callback  
    custom\_tensorboard\_callback = CustomTensorBoardCallback(log\_dir=log\_dir)  
    
    # Log example losses  
    epoch = 1  
    dis\_losses = \[0.2, 0.3, 0.25\]  # Example discriminator losses  
    gen\_losses = \[0.4, 0.35, 0.45\]  # Example generator losses  
    
    custom\_tensorboard\_callback.write\_log('discriminator\_loss', np.mean(dis\_losses), epoch)  
    custom\_tensorboard\_callback.write\_log('generator\_loss', np.mean(gen\_losses), epoch)  
    
    # Train the model  
    model.fit(data, labels, epochs=5, callbacks=\[custom\_tensorboard\_callback\])
    
    tensorboard --logdir=logs/fit