ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

tensorflow学习020——标量和自定义标量的tensorboard显示

2022-03-03 18:00:36  阅读:206  来源: 互联网

标签:自定义 keras image labels tf rate test 020 标量


tensorboard通过读取tensorflow的事件文件来运行,tendorflow的事件文件包括了在tensorflow运行中涉及到的主要数据

点击查看代码
import tensorflow as tf
import datetime
import os

(train_image,train_labels),(test_image,test_labels) = tf.keras.datasets.mnist.load_data()
train_image = tf.expand_dims(train_image,-1)
test_image = tf.expand_dims(test_image,-1)
train_labels = tf.cast(train_labels,tf.int64)
test_labels = tf.cast(test_labels,tf.int64)
dataset = tf.data.Dataset.from_tensor_slices((train_image,train_labels))
test_dataset = tf.data.Dataset.from_tensor_slices((test_image,test_labels))
dataset = dataset.repeat().shuffle(60000).batch(128)
test_dataset = test_dataset.repeat().batch(128)

log_dir = os.path.join('logs',datetime.datetime.now().strftime("%Y%m%d-%H%M%S"))  # 存放事件文件的路径
tensorboard_callback = tf.keras.callbacks.TensorBoard(log_dir,histogram_freq=1)

# 自定义标量
file_writer = tf.summary.create_file_writer(log_dir + '/lr')  # 使用创建文件编写器
file_writer.set_as_default()  # 设为默认编写器
# 定义自定义学习率功能,将被传递给keas LearningRateScheduler回调
def lr_rate(epoch):
    learning_rate = 0.2
    if epoch > 5:
        learning_rate = 0.02
    if epoch > 10:
        learning_rate = 0.01
    if epoch > 20:
        learning_rate = 0.005
    # 在学习率功能内,用tf.summary.scalar()记录自定义学习率
    tf.summary.scalar('learning_rate',data=learning_rate,step=epoch)  # 分别是名字 纵坐标 横坐标
    return  learning_rate

lr_callback = tf.keras.callbacks.LearningRateScheduler(lr_rate)

model = tf.keras.Sequential([
    tf.keras.layers.Conv2D(16,[3,3],activation='relu',input_shape=(None,None,1)),
    tf.keras.layers.Conv2D(32,[3,3],activation='relu'),
    tf.keras.layers.GlobalMaxPooling2D(),
    tf.keras.layers.Dense(10,activation='softmax')
])
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
model.fit(dataset,epochs=25,steps_per_epoch=60000//128,validation_data=test_dataset,validation_steps=10000//128,
          callbacks=[tensorboard_callback,lr_callback])
# 在命令行使用tensrboard --logdir logs启动

标签:自定义,keras,image,labels,tf,rate,test,020,标量
来源: https://www.cnblogs.com/sunjianzhao/p/15961158.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有