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