Defterlerde TensorBoard'u Kullanma

TensorFlow.org'da görüntüleyin Google Colab'da çalıştırın Kaynağı GitHub'da görüntüleyin Not defterini indir

TensorBoard gibi dizüstü deneyimleri içinde doğrudan kullanılabilir CoLab ve Jupyter . Bu, sonuçları paylaşmak, TensorBoard'u mevcut iş akışlarına entegre etmek ve yerel olarak herhangi bir şey yüklemeden TensorBoard'u kullanmak için yardımcı olabilir.

Kurmak

TF 2.0'ı yükleyerek ve TensorBoard dizüstü bilgisayar uzantısını yükleyerek başlayın:

Jupyter kullanıcıları için: Aynı virtualenv içine Jupyter ve TensorBoard yükledim, o zaman gitmek için iyi olmalıdır. Farklı Conda / Virtualenv ortamlar için global Jupyter kurulum ve çekirdekleri gibi daha karmaşık kurulum, kullanıyorsanız, o zaman emin olmalıdır tensorboard ikili senin üzerindedir PATH Jupyter dizüstü bağlamında iç. Bunu yapmanın bir yolu, değiştirmektir kernel_spec ortamının başa ekleyerek bin dizini PATH , burada açıklandığı gibi .

Docker kullanıcıları için: Eğer bir çalışan Docker imajını TensorFlow en gece kullanarak Jupyter Notebook sunucusuna , dizüstü bilgisayarın portu, ancak TensorBoard limanına sadece ortaya çıkarmak için gereklidir. Bu nedenle, kabı aşağıdaki komutla çalıştırın:

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

nerede -p 6006 TensorBoard varsayılan bağlantı noktasıdır. Bu, bir TensorBoard örneğini çalıştırmanız için bir bağlantı noktası tahsis edecektir. Eşzamanlı örneklere sahip olmak için daha fazla bağlantı noktası tahsis etmek gerekir. Ayrıca, geçiş --bind_all için %tensorboard kabın dışındaki noktası ortaya çıkarmak.

# Load the TensorBoard notebook extension
%load_ext tensorboard

TensorFlow, datetime ve işletim sistemini içe aktarın:

import tensorflow as tf
import datetime, os

Not defterlerinde TensorBoard

İndir FashionMNIST veri kümesini ve ölçek:

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

Çok basit bir model oluşturun:

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')
  ])

Modeli Keras ve TensorBoard geri aramasını kullanarak eğitin:

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

Kullanarak dizüstü içinde TensorBoard başlatın büyüleri :

%tensorboard --logdir logs

Artık skalerler, grafikler, histogramlar ve diğerleri gibi panoları görüntüleyebilirsiniz. Bazı panolar henüz Colab'da mevcut değildir (profil eklentisi gibi).

%tensorboard sihirli TensorBoard komut satırı çağırma tamamen aynı biçime sahip, ancak birlikte % önünde -işareti.

Ayrıca, devam ettiğini izlemek için eğitimden önce TensorBoard'u başlatabilirsiniz:

%tensorboard --logdir logs

Aynı TensorBoard arka ucu, aynı komut verilerek yeniden kullanılır. Farklı bir günlük dizini seçilmişse, yeni bir TensorBoard örneği açılır. Bağlantı noktaları otomatik olarak yönetilir.

Yeni bir modeli eğitmeye başlayın ve her 30 saniyede bir otomatik olarak TensorBoard güncellemesini izleyin veya sağ üstteki düğmeyle yenileyin:

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

Sen kullanabilirsiniz tensorboard.notebook biraz daha kontrolü için API'ler:

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)