TensorFlow.org에서 보기 | Google Colab에서 실행 | GitHub에서 소스 보기 | 노트북 다운로드 |
TensorBoard 같은 노트북의 경험에서 직접 사용할 수있는 Colab 및 Jupyter . 이는 결과를 공유하고, 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)