Escalar es una función que se utiliza para mostrar la tendencia de los cambios escalares, como precisión, entropía cruzada y abandono. A través de escalar, podemos ver un proceso de cambio gradual de estas cantidades a medida que se profundiza el entrenamiento, y luego podemos ver los pros y los contras de nuestro modelo.
Nota:
1) el escalar solo se puede usar para mostrar un solo escalar, no un tensor;
2) el escalar puede mostrar los resultados de varios entrenamientos
variable
Las variables pueden usar el método Tensorflow.histogram_summary ():
tf.histogram_summary(layer_name+"/weights",Weights) #name命名,Weights赋值
Escalar
1. Ponga la variable de registro en el proceso de flujo tensorial para construir el gráfico.
En el proceso de usar tensorflow para construir un gráfico, coloque operaciones de resumen donde necesite registrar el valor de la variable.
Use tf.summary.scalar para registrar escalares
Use tf.summary.histogram para registrar el histograma de datos
Use tf.summary.distribution para registrar la distribución de datos
Use tf.summary.image para registrar datos de imágenes
——————— ———— —————
Agregar código debajo del escalar que se mostrará:
tf.summary.scalar('loss', loss) # 记录优化器的变化
Nota: Use la misma configuración para entrenar varias veces y luego muestre los resultados en el mismo gráfico con los mismos datos. Ingrese a la carpeta donde se encuentra el registro, elimine los registros del historial y solo mantenga los resultados más recientes y una aparecerá el gráfico.
2. Fusionar operación de resumen
Antes de que se inicialice la variable tensorflow variable, combine las variables del punto de recolección y escríbalas en la ruta log_dir definida previamente.
summaries合并
merged = tf.summary.merge_all()
# 写到指定的磁盘路径中
train_writer = tf.summary.FileWriter(log_dir + '/train', Session.graph) ##该句也可写在变量初始化后,或者训练流程后面
tf.global_variables_initializer().run()
Preste atención a la variable train_writer aquí, aquí es para definir la ubicación de almacenamiento de un mensaje, los datos recopilados más adelante en el proceso de entrenamiento deben escribirse en el archivo a través de esta variable.
3. Recopile datos durante el entrenamiento de la red
Lo siguiente es registrar los datos registrados durante el proceso de entrenamiento de la red.
#训练1k次
for i in range(1000):
sess.run(train_step,feed_dict={
xs:x_data,ys:y_data})
if i%50==0:
result = sess.run(merged,feed_dict={
xs:x_data,ys:y_data}) #merged也是需要run的
train_writer.add_summary(result,i) #result是summary类型的,需要放入writer中,i步数(x轴)
o
for i in range(1000):
batch = mnist.train.next_batch(50)
summary,_ = session.run([merged,train], feed_dict = {
x:batch[0], y:batch[1], keep_prob:0.5})
train_writer.add_summary(summary,i)
if i % 100 == 0:
print("step %4d: " % i)
print(session.run(accuracy, feed_dict = {
x:batch[0], y:batch[1], keep_prob:1}))
print(session.run(accuracy, feed_dict = {
x:mnist.test.images, y:mnist.test.labels, keep_prob:1}))
train_writer.close()
4. Abrir tensorboard
Entra en el entorno virtual de tensorflow
tensorboard --logdir="自己存的地址"
Copie la URL que aparece y ábrala en la página web
Mostrar los resultados de varios entrenamientos
Para mostrar los resultados de varias sesiones de entrenamiento, se debe configurar un directorio diferente para FileWriter durante cada sesión de entrenamiento. Por ejemplo, los primeros ajustes de entrenamiento son los siguientes:
train_writer = tf.summary.FileWriter(log_dir + '/train', self.sess.graph)
Entonces, el segundo entrenamiento se puede configurar como:
train_writer = tf.summary.FileWriter(log_dir + '/train_1', self.sess.graph)
De esta forma, cuando se abre el tensorboard siguiendo los pasos convencionales, se mostrarán diferentes archivos de resultados de entrenamiento en el lado izquierdo del panel, si quieres abrir, solo verifica el archivo correspondiente.
Cuando se marca más de una, se mostrarán diferentes imágenes en diferentes colores en la imagen. Debería ser posible implementar diferentes modelos, pero los resultados del entrenamiento están en un gráfico, solo la ruta de almacenamiento es la misma que train_writer)