tensorflow學習020——標量和自定義標量的tensorboard顯示
阿新 • • 發佈:2022-03-03
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啟動
作者:孫建釗
出處:http://www.cnblogs.com/sunjianzhao/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。