노트북에서 텐서보드 사용

TensorFlow.org에서 보기 Google Colab에서 실행 GitHub에서 소스 보기 노트북 다운로드

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

설정

TF 2.0을 설치하고 TensorBoard 노트북 확장을 로드하여 시작합니다.

Jupyter 사용자의 경우 : 동일한 VIRTUALENV에 Jupyter 및 TensorBoard을 설치 한 경우에, 당신은 갈 수 있어야한다. 당신이 다른 CONDA / VIRTUALENV 환경을위한 글로벌 Jupyter 설치 및 커널과 같은 더 복잡한 설정을 사용하는 경우, 당신은 있는지 확인해야합니다 tensorboard 바이너리가 당신에 PATH Jupyter 노트북 컨텍스트 내부. 이 작업을 수행하는 한 가지 방법은 수정하는 것입니다 kernel_spec 환경의 씁니다 bin 에 디렉토리를 PATH , 여기에 설명 된대로 .

도커 사용자 : 경우에 당신은 실행중인 부두 노동자의 이미지 TensorFlow의 야간 사용 Jupyter 노트북 서버 , 노트북의 포트하지만 TensorBoard의 포트뿐만 아니라 노출 할 필요가 있습니다. 따라서 다음 명령으로 컨테이너를 실행합니다.

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

어디 -p 6006 TensorBoard의 기본 포트입니다. 이렇게 하면 하나의 TensorBoard 인스턴스를 실행할 수 있는 포트가 할당됩니다. 동시 인스턴스를 가지려면 더 많은 포트를 할당해야 합니다. 또한, 통과 --bind_all%tensorboard 용기 외부 포트를 노출시킨다.

# Load the TensorBoard notebook extension
%load_ext tensorboard

TensorFlow, datetime 및 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의 새 인스턴스가 열립니다. 포트는 자동으로 관리됩니다.

새 모델 학습을 시작하고 TensorBoard가 30초마다 자동으로 업데이트되는 것을 보거나 오른쪽 상단의 버튼으로 새로 고침하세요.

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)