Xem trên TensorFlow.org | Chạy trong Google Colab | Xem nguồn trên GitHub | Tải xuống sổ ghi chép |
TensorBoard thể được sử dụng trực tiếp trong những trải nghiệm máy tính xách tay như Colab và Jupyter . Điều này có thể hữu ích cho việc chia sẻ kết quả, tích hợp TensorBoard vào quy trình công việc hiện có và sử dụng TensorBoard mà không cần cài đặt cục bộ bất kỳ thứ gì.
Thành lập
Bắt đầu bằng cách cài đặt TF 2.0 và tải phần mở rộng máy tính xách tay TensorBoard:
Đối với người dùng Jupyter: Nếu bạn đã cài đặt Jupyter và TensorBoard vào virtualenv cùng, sau đó bạn sẽ được tốt để đi. Nếu bạn đang sử dụng một thiết lập phức tạp hơn, như một cài đặt Jupyter toàn cầu và hạt nhân cho khác nhau Conda / virtualenv môi trường, sau đó bạn phải đảm bảo rằng tensorboard
nhị phân là vào bạn PATH
trong bối cảnh máy tính xách tay Jupyter. Một cách để làm điều này là để thay đổi kernel_spec
để thêm vào trước của môi trường bin
thư mục để PATH
, như mô tả ở đây .
Đối với người dùng Docker: Trong trường hợp bạn đang chạy một Docker hình ảnh của máy chủ Máy tính xách tay sử dụng Jupyter TensorFlow của đêm , nó là cần thiết để lộ không chỉ cổng của máy tính xách tay, nhưng cổng của TensorBoard. Do đó, hãy chạy vùng chứa bằng lệnh sau:
docker run -it -p 8888:8888 -p 6006:6006 \
tensorflow/tensorflow:nightly-py3-jupyter
nơi -p 6006
là cổng mặc định của TensorBoard. Điều này sẽ cấp phát một cổng để bạn chạy một phiên bản TensorBoard. Để có các thể hiện đồng thời, cần phải phân bổ nhiều cổng hơn. Ngoài ra, vượt qua --bind_all
đến %tensorboard
để lộ các cổng bên ngoài container.
# Load the TensorBoard notebook extension
%load_ext tensorboard
Nhập TensorFlow, datetime và os:
import tensorflow as tf
import datetime, os
TensorBoard trong máy tính xách tay
Tải FashionMNIST bộ dữ liệu và quy mô nó:
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
Tạo một mô hình rất đơn giản:
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')
])
Huấn luyện mô hình bằng cách sử dụng Keras và lệnh gọi lại 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
Bắt đầu TensorBoard trong máy tính xách tay sử dụng phép thuật :
%tensorboard --logdir logs
Giờ đây, bạn có thể xem các trang tổng quan như vô hướng, biểu đồ, biểu đồ và các trang khác. Một số trang tổng quan chưa có sẵn trong Colab (chẳng hạn như plugin hồ sơ).
Các %tensorboard
kỳ diệu có chính xác định dạng giống như dòng gọi lệnh TensorBoard, nhưng với một %
-Đăng nhập phía trước nó.
Bạn cũng có thể khởi động TensorBoard trước khi luyện tập để theo dõi quá trình luyện tập:
%tensorboard --logdir logs
Phần phụ trợ TensorBoard tương tự được sử dụng lại bằng cách đưa ra cùng một lệnh. Nếu một thư mục nhật ký khác được chọn, một phiên bản mới của TensorBoard sẽ được mở. Các cổng được quản lý tự động.
Bắt đầu đào tạo một mô hình mới và xem TensorBoard cập nhật tự động sau mỗi 30 giây hoặc làm mới nó bằng nút ở trên cùng bên phải:
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
Bạn có thể sử dụng tensorboard.notebook
API cho một kiểm soát nhiều hơn chút:
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)