Python. TensorFlow для чайников. Часть 2
На прошлом уроке я рассказал как создать на TensorFlow простой нейрон. Сегодня будем изучать другу часть библиотеки, связанную с визуализацией (TensorBoard). Что такое TensorBoard? Это мощная система визуализации, которая, как правило, ставиться вместе с самим TensorFlow. Он позволяет, например, визуализировать схему нейронной сети. Сейчас я вам это продемонстрирую. Итак, берем код прошлого урока. Слегка переделываем его, вставляя необходимые функции, чтобы передать нужные данные TensorBoard:
import tensorflow as tf import matplotlib.pyplot as plt #создаим сессию sess = tf.Session() #Создадим граф graph = tf.get_default_graph() #Создадим входное значение input_value = tf.constant(1.0) #Создадим переменную weight = tf.Variable(0.8) #Создаим выходное значение output_value = weight * input_value #Создаем оптимизиатор desired_output_value = tf.constant(2.0) loss = (output_value - desired_output_value)**2 #Функция ошибки optim = tf.train.GradientDescentOptimizer(learning_rate=0.025) #Оптимизатор grads_and_vars = optim.compute_gradients(loss) #Инициализируем переменные init=tf.global_variables_initializer() sess.run(init) writer = tf.summary.FileWriter("e:\\output_dir", sess.graph) #Обучаем train_step = tf.train.GradientDescentOptimizer(0.025).minimize(loss) for i in range(100): writer.add_summary(sess.run(train_step),i) print(sess.run(output_value)) writer.add_graph(graph) writer.close()
Затем запускаем TensorBoard, например, вот таким вот батничком:
C:\Users\user\AppData\Local\Programs\Python\Python36\python.exe C:\Users\user\AppData\Local\Programs\Python\Python36\Lib\site-packages\tensorflow\tensorboard\tensorboard.py —logdir=e:\output_dir
pause
Мы увидим окно командной строки, где будет показан адрес доступа к локальной странице показа информации:
Набираем ее в браузере, переключаемся на закладку Grapth и видим граф нашей нейронной сети:
Этот граф можно двигать мышкой и даже менять его масштаб (колесиком мышки):
В тексте программы можно задавать имена операциям (параметр name), например:
#Создадим входное значение input_value = tf.constant(1.0, name="Input") #Создадим переменную weight = tf.Variable(0.8, name="Weight")
На графе они тоже будут видны:
Еще элементы графа можно группировать. Например, вот так:
import tensorflow as tf import matplotlib.pyplot as plt #создаим сессию sess = tf.Session() #Создадим граф graph = tf.get_default_graph() with tf.name_scope("MyOperationGroup"): with tf.name_scope("Scope_A"): #Создадим входное значение input_value = tf.constant(1.0, name="Input") #Создадим переменную weight = tf.Variable(0.8, name="Weight") #Создаим выходное значение output_value = weight * input_value with tf.name_scope("Scope_B"): #Создаем оптимизиатор desired_output_value = tf.constant(2.0) loss = (output_value - desired_output_value)**2 #Функция ошибки optim = tf.train.GradientDescentOptimizer(learning_rate=0.025) #Оптимизатор grads_and_vars = optim.compute_gradients(loss) #Инициализируем переменные init=tf.global_variables_initializer() sess.run(init) writer = tf.summary.FileWriter("e:\\output_dir", sess.graph) #Обучаем train_step = tf.train.GradientDescentOptimizer(0.025).minimize(loss) for i in range(100): writer.add_summary(sess.run(train_step),i) print(sess.run(output_value)) writer.add_graph(graph) writer.close()
Теперь граф будет сгруппирован на области:
Каждую из областей можно раскрыть «плюсиком»
Comments
So empty here ... leave a comment!