日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

TensorFlow 2.0 - Checkpoint 保存变量、TensorBoard 训练可视化

發布時間:2024/7/5 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TensorFlow 2.0 - Checkpoint 保存变量、TensorBoard 训练可视化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1. Checkpoint 保存變量
    • 2. TensorBoard 訓練過程可視化

學習于:簡單粗暴 TensorFlow 2

1. Checkpoint 保存變量

  • tf.train.Checkpoint 可以保存 tf.keras.optimizer 、 tf.Variable 、 tf.keras.Layer 、 tf.keras.Model
path = "./checkp.ckpt" # 建立一個 checkpoint mycheckpoint = tf.train.Checkpoint(mybestmodel=mymodel) # 接受 **kwargs 鍵值對 mycheckpoint.save(path)

  • 恢復指定模型變量
# 待恢復參數的模型 restored_model = LinearModel() # mybestmodel 名字任意寫,跟下面恢復時保持一致 mycheckpoint = tf.train.Checkpoint(mybestmodel=restored_model) # 恢復指定的變量 path = "./checkp.ckpt-1" mycheckpoint.restore(path)X_test = tf.constant([[5.1], [6.1]]) res = restored_model.predict(X_test) print(res) # [[10.182168] 前一節的線性回歸模型 # [12.176777]]
  • 恢復最近的模型,自動選定目錄下最新的存檔(后綴數字最大的)
mycheckpoint.restore(tf.train.latest_checkpoint("./"))
  • 管理保存的參數,有時不需要保存太多,占空間
mycheckpoint = tf.train.Checkpoint(mybestmodel=mymodel) # 接受 **kwargs 鍵值對 manager = tf.train.CheckpointManager(mycheckpoint, directory="./",checkpoint_name='checkp.ckpt',max_to_keep=2) # 最多保存k個最新的for loop:manager.save() # 自動遞增編號manager.save(checkpoint_number=idx) # 指定編號

2. TensorBoard 訓練過程可視化

  • summary_writer = tf.summary.create_file_writer(logdir=log_dir)
  • tf.summary.scalar(name='loss', data=loss, step=idx)
  • tf.summary.trace_on(profiler=True)
for loop:with summary_writer.as_default():tf.summary.scalar(name='loss', data=loss, step=idx) with summary_writer.as_default():tf.summary.trace_export(name='model_trace', step=0,profiler_outdir=log_dir)
  • 示例
import tensorflow as tf import numpy as npclass MNistLoader():def __init__(self):data = tf.keras.datasets.mnist# 加載數據(self.train_data, self.train_label), (self.test_data, self.test_label) = data.load_data()# 擴展維度,灰度圖1通道 [batch_size, 28, 28, chanels=1]self.train_data = np.expand_dims(self.train_data.astype(np.float32) / 255.0, axis=-1)self.test_data = np.expand_dims(self.test_data.astype(np.float32) / 255.0, axis=-1)self.train_label = self.train_label.astype(np.int32)self.test_label = self.test_label.astype(np.int32)# 樣本個數self.num_train_data, self.num_test_data = self.train_data.shape[0], self.test_data.shape[0]def get_batch(self, batch_size):# 從訓練集里隨機取出 batch_size 個樣本idx = np.random.randint(0, self.num_train_data, batch_size)return self.train_data[idx, :], self.train_label[idx]# 自定義多層感知機模型 class MLPmodel(tf.keras.Model):def __init__(self):super().__init__()# 除第一維以外的維度展平self.flatten = tf.keras.layers.Flatten()self.dense1 = tf.keras.layers.Dense(units=100, activation='relu')self.dense2 = tf.keras.layers.Dense(units=10)def call(self, input):x = self.flatten(input)x = self.dense1(x)x = self.dense2(x)output = tf.nn.softmax(x)return output# %%num_epochs = 5 batch_size = 50 learning_rate = 1e-4 log_dir = './log' # 日志目錄 mymodel = MLPmodel()# %% data_loader = MNistLoader() optimizer = tf.keras.optimizers.Adam(learning_rate=learning_rate) num_batches = int(data_loader.num_train_data // batch_size * num_epochs)# 實例化記錄器 summary_writer = tf.summary.create_file_writer(logdir=log_dir) # 開啟 trace,(可選),記錄訓練時的大量信息(圖的結構,耗時等) tf.summary.trace_on(profiler=True)for idx in range(num_batches):X, y = data_loader.get_batch(batch_size)with tf.GradientTape() as tape:y_pred = mymodel(X)loss = tf.keras.losses.sparse_categorical_crossentropy(y_true=y, y_pred=y_pred)loss = tf.reduce_mean(loss)print("batch {}, loss {}".format(idx, loss.numpy()))# 記錄器記錄losswith summary_writer.as_default():tf.summary.scalar(name='loss', data=loss, step=idx)grads = tape.gradient(loss, mymodel.variables)optimizer.apply_gradients(grads_and_vars=zip(grads, mymodel.variables))with summary_writer.as_default():tf.summary.trace_export(name='model_trace', step=0,profiler_outdir=log_dir)
  • 開始訓練,命令行進入 可視化界面 tensorboard --logdir=./log
  • 點擊命令行中的鏈接,打開瀏覽器,查看訓練曲線
  • 若重新訓練,請刪除 log 文件,或設置別的 log 路徑,重新 cmd 開啟 瀏覽器

總結

以上是生活随笔為你收集整理的TensorFlow 2.0 - Checkpoint 保存变量、TensorBoard 训练可视化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: aⅴ天堂网 | 一久久久久 | 台湾佬av | 福利资源导航 | 中文免费在线观看 | 日韩精品在线免费观看视频 | 爱就操 | 深夜视频一区二区 | 手机在线免费观看av | 99国产精品一区二区三区 | 正在播放av| 97国产视频| 亚洲调教欧美在线 | 国产在线视频在线观看 | 国产无遮无挡120秒 欧美综合图片 | 欧美精品一区二区三区四区 | 精品一区二区三区不卡 | 久久1234 | 毛片网站在线免费观看 | 我我色综合 | 女同动漫免费观看高清完整版在线观看 | 少妇高潮一区二区三区喷水 | 日韩精品一区二区三区不卡 | 精品人妻伦一二三区久 | 亚洲情人网 | 国产精品一区二区三区免费 | 三上悠亚亚洲一区 | 青草视频在线免费观看 | 午夜视频网站 | 就爱av | 激情欧美网站 | 久久久看片 | 国产91精品久久久久 | 黄色av小说在线观看 | 国产一线天粉嫩馒头极品av | 亚洲偷拍一区 | 亚洲精华国产精华精华液网站 | 中文字幕在线视频一区 | 亚洲区色| 亚洲综合图片区 | aaaaa一级片| 人人爱爱 | 亚洲国产精品视频 | 欧美色图1 | 亚洲综合在线一区二区 | 奶水喷溅 在线播放 | 91丨九色丨蝌蚪丨对白 | 欧美大肥婆大肥bbbbb | 成人免费毛片日本片视频 | 农村村妇真实偷人视频 | 半推半就一ⅹ99av | 都市豪门艳霸淫美妇 | 国产3页| 有码视频在线观看 | 国产一级做a爰片在线看免费 | 国产高清精品软件丝瓜软件 | 性欧美bbw| 男人天堂aaa| 国产午夜啪啪 | 国产精品普通话 | 久久精品一区二区在线观看 | 伊人365影院 | 国产精品一区一区三区 | 国产精品sm调教免费专区 | 亲子乱子伦xxxx | 国产日韩在线视频 | 艳妇乳肉豪妇荡乳xxx | 国产亚洲精品av | 天天色综合久久 | 亚洲逼图| 男人天堂aaa | 欧美色性视频 | 日产毛片 | 婷婷深爱激情 | 天天色综合av | 久久五月天av | 欧美人体视频一区二区三区 | 成人毛片观看 | 网友自拍第一页 | 男女啪啪网站 | 国产免费一区二区 | 久久久97 | 91精品视频在线播放 | 在线视频激情小说 | 超碰98在线观看 | 精品www久久久久久奶水 | 女生的胸无遮挡 | 欧美日韩一级二级 | 日本三级韩国三级三级a级按摩 | 亚洲av无码国产在丝袜线观看 | 欧美片免费网站 | 草草在线观看 | 丁香婷婷综合激情 | 欧美 日韩 国产精品 | 性高潮久久久久 | 日免费视频 | 日韩欧美中文字幕在线播放 | 手机免费看av片 | 免费国产 |