深度学习9-tensorboard
文章目录
- 1.Tensorboard简介
- 2.Keras训练中使用
- 3.自定义训练中使用
掌握Tensorboard作用,学会使用Tebsorboard,看评估指标、模型图
1.Tensorboard简介
2.Keras训练中使用
Tensorboard界面解释
from __future__ import absolute_import, division, print_function, unicode_literalsimport tensorflow as tf
import numpy as np
from tensorflow.keras.layers import Dense, Flatten, Conv2D
from tensorflow.keras import Model
import numpy as np
import datetime
print(tf.__version__)
print(np.__version__)mnist = np.load("mnist.npz")
x_train, y_train, x_test, y_test = mnist['x_train'],mnist['y_train'],mnist['x_test'],mnist['y_test']x_train, x_test = x_train / 255.0, x_test / 255.0# Add a channels dimension
x_train = x_train[..., tf.newaxis]
x_test = x_test[..., tf.newaxis]class MyModel(Model):def __init__(self):super(MyModel, self).__init__()self.conv1 = Conv2D(32, 3, activation='relu')self.flatten = Flatten()self.d1 = Dense(128, activation='relu')self.d2 = Dense(10, activation='softmax')@tf.functiondef call(self, x):x = self.conv1(x)x = self.flatten(x)x = self.d1(x)return self.d2(x)model = MyModel()
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])# 定义一个回调函数
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir="keras_logv2", histogram_freq=1, # 频率profile_batch = 100000000)# 模型训练的性能model.fit(x=x_train, y=y_train, epochs=20, validation_data=(x_test, y_test), callbacks=[tensorboard_callback])# 第一种方式-据说在谷歌colab下可以打开,但我没有打开
# colab是一个好东西,不过需要花钱翻墙,害
# 查看tersorboard
%load_ext tensorboard
%tensorboard --logdir keras_log
第二种方式
C:\Users\admin>tensorboard --logdir=tensorboard --logdir=C:\Users\admin\data\keras_logv2\train
根据自己的目录进行修改
然后打开这个网址会出现如下类似的图
3.自定义训练中使用
代码没跑出来-_-~
from __future__ import absolute_import, division, print_function, unicode_literalsimport tensorflow as tffrom tensorflow.keras.layers import Dense, Flatten, Conv2D
from tensorflow.keras import Model
import numpy as np
import datetime
print(tf.__version__)
print(np.__version__)# 数据集加载与处理
mnist = np.load("mnist.npz")
x_train, y_train, x_test, y_test = mnist['x_train'],mnist['y_train'],mnist['x_test'],mnist['y_test']x_train, x_test = x_train / 255.0, x_test / 255.0# Add a channels dimension
x_train = x_train[..., tf.newaxis]
x_test = x_test[..., tf.newaxis]train_ds = tf.data.Dataset.from_tensor_slices((x_train, y_train)).shuffle(10000).batch(32)
test_ds = tf.data.Dataset.from_tensor_slices((x_test, y_test)).batch(32)# 定义模型
class MyModel(Model):def __init__(self,**kwargs):super(MyModel, self).__init__(**kwargs)self.conv1 = Conv2D(32, 3, activation='relu')self.flatten = Flatten()self.d1 = Dense(128, activation='relu')self.d2 = Dense(10, activation='softmax')# 将前向传播变成静态图@tf.functiondef call(self, x):x = self.conv1(x)x = self.flatten(x)x = self.d1(x)return self.d2(x)loss_object = tf.keras.losses.SparseCategoricalCrossentropy()optimizer = tf.keras.optimizers.Adam()train_loss = tf.keras.metrics.Mean(name='train_loss')
train_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='train_accuracy')test_loss = tf.keras.metrics.Mean(name='test_loss')
test_accuracy = tf.keras.metrics.SparseCategoricalAccuracy(name='test_accuracy')# @tf.function
def train_step(images, labels):with tf.GradientTape() as tape:predictions = model(images)loss = loss_object(labels, predictions)gradients = tape.gradient(loss, model.trainable_variables)optimizer.apply_gradients(zip(gradients, model.trainable_variables))train_loss(loss)train_accuracy(labels, predictions)# @tf.function
def test_step(images, labels):predictions = model(images)t_loss = loss_object(labels, predictions)test_loss(t_loss)test_accuracy(labels, predictions)model = MyModel()stamp = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
import os
logdir = os.path.join("logs/"+stamp)summary_writer = tf.summary.create_file_writer(logdir) EPOCHS = 1for epoch in range(EPOCHS):for (x_train, y_train) in train_ds:train_step(x_train, y_train)with summary_writer.as_default(): # 希望使用的记录器tf.summary.scalar('loss', train_loss.result(), step=epoch)tf.summary.scalar('accuracy', train_accuracy.result(), step=epoch) # 还可以添加其他自定义的变量# for (x_test, y_test) in test_ds:
# test_step(x_test, y_test)# template = 'Epoch {}, Loss: {}, Accuracy: {}, Test Loss: {}, Test Accuracy: {}'
# print(template.format(epoch + 1,
# train_loss.result(),
# train_accuracy.result() * 100,
# test_loss.result(),
# test_accuracy.result() * 100))# Reset metrics every epochtrain_loss.reset_states()test_loss.reset_states()train_accuracy.reset_states()test_accuracy.reset_states()with summary_writer.as_default():tf.summary.trace_on(graph=True, profiler=False) # 开启Trace,可以记录图结构和profile信息tf.summary.trace_export(name="model_trace", step=3, profiler_outdir=None) # 保存Trace信息到文件
深度学习9-tensorboard相关推荐
- 【深度学习】Tensorboard可视化模型训练过程和Colab使用
[深度学习]Tensorboard可视化模型训练过程和Colab使用 文章目录 1 概述 2 手撸代码实现 3 Colab使用3.1 详细步骤3.2 Demo 4 总结 1 概述 在利用TensorF ...
- 【深度学习】tensorboard中的图片放到论文中
1. 利用tensorboard中的导出数据功能 选中左上角的标签,然后选择csv格式的数据下载即可. 左边的smoothing 数值不影响导出数据的大小. 2.tensorboard 图下标签介绍: ...
- 深度学习(33)随机梯度下降十一: TensorBoard可视化
深度学习(33)随机梯度下降十一: TensorBoard可视化 Step1. run listener Step2. build summary Step3.1 fed scalar(监听标量) S ...
- 【深度学习】模型训练过程可视化思路(可视化工具TensorBoard)
[深度学习]模型训练过程可视化思路(可视化工具TensorBoard) 文章目录 1 TensorBoard的工作原理 2 TensorFlow中生成log文件 3 启动TensorBoard,读取l ...
- 深度学习入门笔记系列(三)——感知器模型和 tensorboard 的使用方法
本系列将分为 8 篇 .今天是第三篇 .主要讲讲感知器模型和 tensorboard 的基本使用方法 . 1. 感知器模型 因为小詹之前写过一篇感知器模型的介绍 ,这里就不赘述了 .有需要巩固的点击如 ...
- AI深度学习入门与实战15 TensorBoard:实验统计分析助手
在 13 和 14 讲中,我们一同了解了 TensorFlow.通过 TensorFlow,我们可以将设计好的理论模型变成实际可用的真正的模型.这一讲,我们将学习一个高效的实验分析助手:TensorB ...
- 【深度学习实战】---TensorBoard网络可视化
[深度学习实战]-TensorBoard网络可视化 前记 为了能够更加深层次的理解我们的网络结构,不必要是画一份简简单单的网络的草图(如[深度学习实战]迈出第一步------编写第一个神经网络),那么 ...
- pytorch深度学习实战一书,tensorboard可视化踩坑
书评&踩坑 @[TOC](书评&踩坑) `提示:纯个人观点,仅供参考` 前言 一.源码学习,又是版本问题(省略内心独白...) 二.步骤 1.安装tensorflow 2.思考,看代码 ...
- 深度学习编译器Data Flow和Control Flow
深度学习编译器Data Flow和Control Flow 本文介绍了一下深度学习框架的Data Flow和Control Flow,基于TensorFlow解释了TensorFlow是如何在静态图中 ...
- XLearning - 深度学习调度平台
XLearning - 深度学习调度平台 软件简介 XLearning **** 是奇虎 360 开源的一款支持多种机器学习.深度学习框架调度系统.基于 Hadoop Yarn 完成了对TensorF ...
最新文章
- 不能记账,往来帐页不能显示结转数据
- 利用binlog进行数据库的还原
- Python3.5入门到项目实战(104天课程)
- [Bugku][Web][CTF] 9-15 write up
- C#委托实现C++ Dll中的回调函数
- Kmeans CUDA
- DataSet和DataTable详解
- 嵌入式Linux入门4:版本控制git的使用
- 【Kafka】Kafka inter.broker.listener.name must be a listener name defined in advertised.listeners
- Python使用numpy滤除图像中的低频信号
- Yahei Consolas Hybrid------解决eclipse中文汉字太小问题
- 数据网站(数据集的获取)、打分网站
- “飞跃四十载 同发展·共繁荣”巡回展在江苏举行
- mysql 5.6 在线DDL
- 电脑照片,怎么把电脑照片传到iphone手机 将电脑照片传到iphone方法【图文】
- 这才是在线Word转PDF的正确姿势
- tp房产源码tpfangchan-fangcms-tphouse火车头采集软件方法
- 《自控力》读书笔记思维导图
- SpaceShooter打飞机教程笔记(三)
- navicat显示中文为问号