Посмотреть на TensorFlow.org | Запустить в Google Colab | Посмотреть исходный код на GitHub | Скачать блокнот |
TensorBoard могут быть использованы непосредственно в ноутбуках событий , таких как Colab и Jupyter . Это может быть полезно для обмена результатами, интеграции TensorBoard в существующие рабочие процессы и использования TensorBoard без локальной установки.
Настраивать
Начните с установки TF 2.0 и загрузки расширения для ноутбука TensorBoard:
Для пользователей Jupyter: Если вы установили Jupyter и TensorBoard в то же virtualenv, то вы должны быть хорошо идти. Если вы используете более сложную настройку, как глобальная установку Jupyter и ядро для различной Конды / virtualenv среды, то вы должны убедиться , что tensorboard
двоичного файл на ваш PATH
внутри контекста ноутбука Jupyter. Один из способов сделать это , чтобы изменить kernel_spec
предварять окружающую среду в bin
директорию в PATH
, как описано здесь .
Для пользователей Docker: В случае , если вы работаете в Докер образ сервера Notebook Jupyter с помощью TensorFlow - х еженощно , необходимо подвергать не только порт ноутбука, но порт 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
TensorBoard в тетрадях
Скачать 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, но с %
-знаком перед ним.
Вы также можете запустить 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)