ดูบน TensorFlow.org | ทำงานใน Google Colab | ดูแหล่งที่มาบน GitHub | ดาวน์โหลดโน๊ตบุ๊ค |
TensorBoard สามารถนำมาใช้โดยตรงภายในประสบการณ์โน้ตบุ๊คเช่น Colab และ Jupyter ซึ่งจะเป็นประโยชน์สำหรับการแชร์ผลลัพธ์ การรวม TensorBoard เข้ากับเวิร์กโฟลว์ที่มีอยู่ และใช้ TensorBoard โดยไม่ต้องติดตั้งอะไรในเครื่อง
ติดตั้ง
เริ่มต้นด้วยการติดตั้ง TF 2.0 และโหลดส่วนขยายโน้ตบุ๊ก TensorBoard:
สำหรับผู้ใช้ Jupyter: ถ้าคุณได้ติดตั้ง Jupyter และ TensorBoard เข้า virtualenv เดียวกันแล้วคุณควรจะดีไป หากคุณกำลังใช้การตั้งค่าที่ซับซ้อนมากขึ้นเช่นการติดตั้ง Jupyter ทั่วโลกและเมล็ดที่แตกต่างกันสำหรับ Conda / virtualenv สภาพแวดล้อมแล้วคุณจะต้องให้แน่ใจว่า tensorboard
ไบนารีบน PATH
ภายในบริบทโน้ตบุ๊ค Jupyter วิธีหนึ่งที่จะทำเช่นนี้คือการปรับเปลี่ยน kernel_spec
ต้องเพิ่มสภาพแวดล้อมของ bin
ไดเรกทอรีไปยัง PATH
, ตามที่อธิบายไว้ที่นี่
สำหรับผู้ใช้หาง: ในกรณีที่คุณกำลังเรียกใช้ หาง ภาพของ โน๊ตบุ๊คเซิร์ฟเวอร์ 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 วันที่เวลา และระบบปฏิบัติการ:
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
APIs สำหรับการควบคุมมากขึ้นอีกนิด:
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)