이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

노트북에서 TensorBoard 사용

TensorFlow.org에서보기 Google Colab에서 실행 GitHub에서 소스보기

TensorBoard는 ColabJupyter 와 같은 노트북 환경에서 직접 사용할 수 있습니다. 이는 결과를 공유하고, TensorBoard를 기존 워크 플로우에 통합하고, 로컬로 아무것도 설치하지 않고 TensorBoard를 사용하는 데 도움이 될 수 있습니다.

설정

TF 2.0을 설치하고 TensorBoard 노트북 확장을로드하여 시작하십시오.

Jupyter 사용자의 경우 : Jupyter와 TensorBoard를 동일한 virtualenv에 설치 한 경우 계속 진행해야합니다. 글로벌 Jupyter 설치 및 다른 Conda / virtualenv 환경에 대한 커널과 같은 더 복잡한 설정을 사용하는 경우 tensorboard 바이너리가 Jupyter 노트북 컨텍스트 내의 PATH 에 있는지 확인해야합니다. 이를 수행하는 한 가지 방법 은 여기에 설명 된대로 환경의 bin 디렉토리를 PATH 앞에 추가하도록 kernel_spec 을 수정하는 입니다.

TensorFlow의 nightly를 사용하여 Jupyter Notebook 서버Docker 이미지를 실행하는 경우 노트북의 포트뿐만 아니라 TensorBoard의 포트를 노출해야합니다.

따라서 다음 명령으로 컨테이너를 실행하십시오.

 docker run -it -p 8888:8888 -p 6006:6006 \
tensorflow/tensorflow:nightly-py3-jupyter 
 

여기서 -p 6006 은 TensorBoard의 기본 포트입니다. 이렇게하면 하나의 TensorBoard 인스턴스를 실행할 수있는 포트가 할당됩니다. 동시 인스턴스를 가지려면 더 많은 포트를 할당해야합니다.

 # Load the TensorBoard notebook extension
%load_ext tensorboard
 

TensorFlow, 날짜 / 시간 및 OS 가져 오기 :

 import tensorflow as tf
import datetime, os
 

노트북의 텐서 보드

FashionMNIST 데이터 셋을 다운로드하여 확장하십시오 :

 fashion_mnist = tf.keras.datasets.fashion_mnist

(x_train, y_train),(x_test, y_test) = fashion_mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0
 
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz
32768/29515 [=================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz
26427392/26421880 [==============================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz
8192/5148 [===============================================] - 0s 0us/step
Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz
4423680/4422102 [==============================] - 0s 0us/step

매우 간단한 모델을 만듭니다.

 def create_model():
  return tf.keras.models.Sequential([
    tf.keras.layers.Flatten(input_shape=(28, 28)),
    tf.keras.layers.Dense(512, activation='relu'),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation='softmax')
  ])
 

Keras 및 TensorBoard 콜백을 사용하여 모델을 학습하십시오.

 def train_model():
  
  model = create_model()
  model.compile(optimizer='adam',
                loss='sparse_categorical_crossentropy',
                metrics=['accuracy'])

  logdir = os.path.join("logs", datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))
  tensorboard_callback = tf.keras.callbacks.TensorBoard(logdir, histogram_freq=1)

  model.fit(x=x_train, 
            y=y_train, 
            epochs=5, 
            validation_data=(x_test, y_test), 
            callbacks=[tensorboard_callback])

train_model()
 
Train on 60000 samples, validate on 10000 samples
Epoch 1/5
60000/60000 [==============================] - 11s 182us/sample - loss: 0.4976 - accuracy: 0.8204 - val_loss: 0.4143 - val_accuracy: 0.8538
Epoch 2/5
60000/60000 [==============================] - 10s 174us/sample - loss: 0.3845 - accuracy: 0.8588 - val_loss: 0.3855 - val_accuracy: 0.8626
Epoch 3/5
60000/60000 [==============================] - 10s 175us/sample - loss: 0.3513 - accuracy: 0.8705 - val_loss: 0.3740 - val_accuracy: 0.8607
Epoch 4/5
60000/60000 [==============================] - 11s 177us/sample - loss: 0.3287 - accuracy: 0.8793 - val_loss: 0.3596 - val_accuracy: 0.8719
Epoch 5/5
60000/60000 [==============================] - 11s 178us/sample - loss: 0.3153 - accuracy: 0.8825 - val_loss: 0.3360 - val_accuracy: 0.8782

마술을 사용하여 노트북 내에서 TensorBoard를 시작하십시오.

 %tensorboard --logdir logs
 

스칼라, 그래프, 히스토그램 등과 같은 대시 보드를 볼 수 있습니다. Colab에서는 아직 프로파일 플러그인과 같은 일부 대시 보드를 사용할 수 없습니다.

%tensorboard 매직은 TensorBoard 명령 행 호출과 정확히 같은 형식이지만 앞에 % -sign이 있습니다.

훈련하기 전에 TensorBoard를 시작하여 진행중인 것을 모니터링 할 수도 있습니다.

 %tensorboard --logdir logs
 

동일한 명령을 실행하여 동일한 TensorBoard 백엔드를 재사용합니다. 다른 로그 디렉토리를 선택한 경우 새 TensorBoard 인스턴스가 열립니다. 포트는 자동으로 관리됩니다.

새로운 모델 훈련을 시작하고 30 초마다 자동으로 TensorBoard 업데이트를 보거나 오른쪽 상단의 버튼으로 새로 고칩니다.

 train_model()
 
Train on 60000 samples, validate on 10000 samples
Epoch 1/5
60000/60000 [==============================] - 11s 184us/sample - loss: 0.4968 - accuracy: 0.8223 - val_loss: 0.4216 - val_accuracy: 0.8481
Epoch 2/5
60000/60000 [==============================] - 11s 176us/sample - loss: 0.3847 - accuracy: 0.8587 - val_loss: 0.4056 - val_accuracy: 0.8545
Epoch 3/5
60000/60000 [==============================] - 11s 176us/sample - loss: 0.3495 - accuracy: 0.8727 - val_loss: 0.3600 - val_accuracy: 0.8700
Epoch 4/5
60000/60000 [==============================] - 11s 179us/sample - loss: 0.3282 - accuracy: 0.8795 - val_loss: 0.3636 - val_accuracy: 0.8694
Epoch 5/5
60000/60000 [==============================] - 11s 176us/sample - loss: 0.3115 - accuracy: 0.8839 - val_loss: 0.3438 - val_accuracy: 0.8764

tensorboard.notebook API를 사용하여 조금 더 제어 할 수 있습니다.

 from tensorboard import notebook
notebook.list() # View open TensorBoard instances
 
Known TensorBoard instances:

  - port 6006: logdir logs (started 0:00:54 ago; pid 265)

 # Control TensorBoard display. If no port is provided, 
# the most recently launched TensorBoard is used
notebook.display(port=6006, height=1000)