Khi làm việc với TensorFlow, trong nhiều trường hợp, chúng ta cần trực quan hóa dữ liệu dưới dạng các hình ảnh, lược đồ, sơ đồ, v.v. để có thể hiểu dữ liệu, sửa lỗi, và tối ưu chương trình một cách dễ dàng. TensorFlow hỗ trợ công cụ TensorBoard phục vụ cho việc trực quan hóa dữ liệu. Các bước chính sử dụng TensorBoard bằng Anaconda Prompt như sau:

Bước 1: tạo thư mục chứa tập tin Python tạo dữ liệu cần trực quan. Giả sử khi mở Anaconda Prompt hiển thị dòng lệnh


C:\Users\Admin>

Để tiện lợi, chúng ta sẽ tạo một thư mục, giả sử thư mục tên logs_add, trong thư mục Admin.

Bước 2: tạo tập tin phát sinh dữ liệu lưu trong thư mục logs_add. Giả sử tập tin tên Addition.py có nội dung như sau:


import tensorflow as tf

firstNum = tf.placeholder(tf.int32, name="First")

secondNum = tf.placeholder(tf.int32, name="Second")

addition = tf.add(firstNum ,secondNum ,name="Addition")

with tf.Session() as sess:

     result = sess.run(addition,feed_dict={firstNum:3,secondNum:5})

     writer = tf.summary.FileWriter("logs_add",sess.graph)

print(result)

Đoạn mã trên dùng thư viện Tensorflow để tính tổng hai số nguyên. Nội dung giống ví dụ trong bài Nhập môn Tensorflow, chỉ có một khác biệt nhỏ trong phần thực thi Session là sử dụng hàm tf.summary.FileWriter để trực quan dữ liệu thành dạng một graph đến TensorBoard và ghi dữ liệu đến đĩa. Tham số đầu tiên của FileWriter là đường dẫn và thư mục chứa tập tin Addition.py, nghĩa là thư mục logs_add, tham số thứ hai là một graph. Chi tiết tf.summary.FileWriter có thể xem tại đây.

Trước khi xem kết quả trên TensorBoard, chúng ta có thể kiểm tra kết quả đoạn mã trên bằng cách mở Anaconda Prompt và gõ lệnh cd để chuyển tới thư mục logs_add:


C:\Users\Admin>cd

Kết quả:


C:\Users\Admin\logs_add>

Thực thi tập tin Addition.py:


C:\Users\Admin\logs_add>python Addition.py

Nếu kết quả là 8 thì không có vấn đề gì xảy ra. Trở lại thư mục Admin bằng lệnh cd..


C:\Users\Admin\logs_add>cd..

Bước 3: thực thi TensorBoard bằng lệnh sau:


C:\Users\Admin>tensorboard --logdir=logs_add

logs_add là thư mục chứa tập tin Addition.py và là giá trị của tham số đầu tiên trong FileWriter. Kết quả khi thực thi có thể trông như sau:

Bước 4: copy dòng http://DESKTOP-06BPUKE:6006 và dán vào ô địa chỉ của một trình duyệt web, ví dụ Chrome, và thực thi

Xem kết quả:

Dòng địa chỉ chúng ta vừa thực thi trên trình duyệt web là địa chỉ localhost của TensorBoard tại cổng 6006. Cổng 6006 là phổ biến nhưng địa chỉ localhost có thể khác nhau.

Thoát TensorBoard trong Anaconda Prompt bằng Ctrl + C.

Thực thi tập tin Addition.py trong thư mục logs_add là đơn giản. Chúng ta có thể thực thi tập tin phức tạp hơn tên Avg.py trong thư mục logs có nội dung sau:


import tensorflow as tf

import numpy as np

raw_data = np.random.normal(10, 1, 100)

alpha = tf.constant(0.05)

curr_value = tf.placeholder(tf.float32)

prev_avg = tf.Variable(0.)

update_avg = alpha * curr_value + (1 - alpha) * prev_avg

avg_hist = tf.summary.scalar("running_average", update_avg)

value_hist = tf.summary.scalar("incoming_values", curr_value)

merged = tf.summary.merge_all()

writer = tf.summary.FileWriter("logs")

init = tf.global_variables_initializer()

with tf.Session() as sess:

     sess.run(init)

     for i in range(len(raw_data)):

         summary_str, curr_avg = sess.run([merged, update_avg],

         feed_dict={curr_value:raw_data[i]})

         sess.run(tf.assign(prev_avg, curr_avg))

         print(raw_data[i], curr_avg)

         writer.add_summary(summary_str, i)

Trong bài viết này chúng ta sẽ không tìm hiểu sâu về các lệnh của tập tin Avg.py, chúng ta chỉ quan tâm về cách thể hiện dữ liệu từ TensorBoard. Gõ dòng lệnh C:\Users\Admin>tensorboard –logdir=logs và copy địa chỉ localhost đến trình duyệt, kết quả:

TensorBoard là một công cụ hữu ích khi sử dụng thư viện TensorFlow, đặc biệt, nó càng có giá trị hơn cho những ai đã từng rất vất vả dùng thư viện matplotlib của Python. Có thể tìm hiểu kỹ hơn về TensorBoard tại đây.