首頁 後端開發 Python教學 Tensorflow之Saver的用法

Tensorflow之Saver的用法

Apr 23, 2018 pm 03:46 PM
tensorflow 用法

這篇文章主要介紹了Tensorflow之Saver的用法詳解,現在分享給大家,也給大家做個參考。一起來看看吧

Saver的用法

1. Saver的背景介紹

我們經常在訓練完一個模型之後希望保存訓練的結果,這些結果指的是模型的參數,以便下次迭代的訓練或用作測試。 Tensorflow針對此需求提供了Saver類別。

Saver類別提供了向checkpoints檔案保存和從checkpoints檔案中復原變數的相關方法。 Checkpoints檔案是一個二進位文件,它把變數名稱映射到對應的tensor值 。

只要提供一個計數器,當計數器觸發時,Saver類別可以自動的產生checkpoint檔案。這讓我們可以在訓練過程中保存多個中間結果。例如,我們可以儲存每一步訓練的結果。

為了避免填滿整個磁碟,Saver可以自動的管理Checkpoints檔案。例如,我們可以指定儲存最近的N個Checkpoints檔案。

2. Saver的實例

下面以範例來敘述如何使用Saver類別 

import tensorflow as tf 
import numpy as np  
x = tf.placeholder(tf.float32, shape=[None, 1]) 
y = 4 * x + 4  
w = tf.Variable(tf.random_normal([1], -1, 1)) 
b = tf.Variable(tf.zeros([1])) 
y_predict = w * x + b 
loss = tf.reduce_mean(tf.square(y - y_predict)) 
optimizer = tf.train.GradientDescentOptimizer(0.5) 
train = optimizer.minimize(loss)  
isTrain = False 
train_steps = 100 
checkpoint_steps = 50 
checkpoint_dir = ''  
saver = tf.train.Saver() # defaults to saving all variables - in this case w and b 
x_data = np.reshape(np.random.rand(10).astype(np.float32), (10, 1))  
with tf.Session() as sess: 
  sess.run(tf.initialize_all_variables()) 
  if isTrain: 
    for i in xrange(train_steps): 
      sess.run(train, feed_dict={x: x_data}) 
      if (i + 1) % checkpoint_steps == 0: 
        saver.save(sess, checkpoint_dir + 'model.ckpt', global_step=i+1) 
  else: 
    ckpt = tf.train.get_checkpoint_state(checkpoint_dir) 
    if ckpt and ckpt.model_checkpoint_path: 
      saver.restore(sess, ckpt.model_checkpoint_path) 
    else: 
      pass 
    print(sess.run(w)) 
    print(sess.run(b))
登入後複製

  1. isTrain:用來區分訓練階段和測試階段,True表示訓練,False表示測試

  2. train_steps:表示訓練的次數,例子中使用100

  3. checkpoint_steps:表示訓練多少次保存一下checkpoints,例子中使用50

  4. checkpoint_dir:表示checkpoints檔案的保存路徑,範例中使用目前路徑

2.1 訓練階段

#使用Saver.save()方法儲存模型:

  1. sess:表示目前會話,目前會話記錄了目前的變數值

  2. checkpoint_dir 'model.ckpt':表示儲存的檔案名稱

  3. global_step:表示目前是第幾步

訓練完成後,目前目錄底下會多出5個檔案。

開啟名為「checkpoint」的文件,可以看到儲存記錄,和最新的模型儲存位置。

2.1測試階段

測試階段使用saver.restore()方法還原變數:

sess:表示目前會話,先前儲存的結果將會載入這個會話

ckpt.model_checkpoint_path:表示模型儲存的位置,不需要提供模型的名字,它會去查看checkpoint文件,看看最新的是誰,叫做什麼。

運行結果如下圖所示,載入了先前訓練的參數w和b的結果

相關推薦:

tensorflow 使用flags定義指令列參數的方法

#tensorflow1.0學習之模型的儲存與復原(Saver)_python

以上是Tensorflow之Saver的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

解析JSP註解的使用方法和分類 解析JSP註解的使用方法和分類 Feb 01, 2024 am 08:01 AM

JSP註解的分類及用法解析JSP註解分為兩種:單行註解:以結尾,只能註解單行程式碼。多行註解:以/*開頭,以*/結尾,可以註解多行程式碼。單行註解範例多行註解範例/**這是一段多行註解*可以註解多行程式碼*/JSP註解的用法JSP註解可以用來註解JSP程式碼,使其更易於閱

conda怎麼安裝tensorflow conda怎麼安裝tensorflow Dec 05, 2023 am 11:26 AM

安裝步驟:1、下載和安裝Miniconda,依照作業系統選擇適合的Miniconda版本,並依照官方指南進行安裝;2、使用「conda create -n tensorflow_env python=3.7」指令建立一個新的Conda環境;3、啟動Conda環境;4、使用「conda install tensorflow」指令安裝最新版的TensorFlow;5、驗證安裝即可。

WPSdatedif函數的用法 WPSdatedif函數的用法 Feb 20, 2024 pm 10:27 PM

WPS是一款常用的辦公室軟體套件,其中的WPS表格功能被廣泛用於資料處理和計算。在WPS表格中,有一個非常有用的函數,即DATEDIF函數,它用於計算兩個日期之間的時間差。 DATEDIF函數是英文單字DateDifference的縮寫,它的語法如下:DATEDIF(start_date,end_date,unit)其中,start_date表示起始日期

如何正確使用C語言的exit函數 如何正確使用C語言的exit函數 Feb 18, 2024 pm 03:40 PM

c語言exit函數怎麼用,需要具體程式碼範例在C語言中,我們常常需要在程式中提前終止程式的執行,或是在某個特定的條件下退出程式。 C語言提供了exit()函數來實作這個功能。本文將介紹exit()函數的用法,並提供對應的程式碼範例。 exit()函數是C語言中的標準函式庫函數,它包含在頭檔中。它的作用是終止程式的執行,並且可以帶一個整數

Python函數介紹:abs函數的用法和範例 Python函數介紹:abs函數的用法和範例 Nov 03, 2023 pm 12:05 PM

Python函數介紹:abs函數的用法和範例一、abs函數的用法介紹在Python中,abs函數是一個內建函數,用於計算給定數值的絕對值。它可以接受一個數字參數,並傳回該數字的絕對值。 abs函數的基本語法如下:abs(x)其中,x是要計算絕對值的數值參數,可以是整數或浮點數。二、abs函數的範例下面我們將透過一些具體的範例來展示abs函數的用法:範例1:計算

Python函數介紹:isinstance函數的用法和範例 Python函數介紹:isinstance函數的用法和範例 Nov 04, 2023 pm 03:15 PM

Python函數介紹:isinstance函數的用法和範例Python是一門功能強大的程式語言,提供了許多內建函數,使得程式設計變得更加方便和有效率。其中一個非常有用的內建函數是isinstance()函數。本文將介紹isinstance函數的用法和範例,並提供具體的程式碼範例。 isinstance()函數用來判斷一個物件是否是指定的類別或類型的實例。該函數的語法如下

使用TensorFlow和Keras建立貓狗圖片深度學習分類器 使用TensorFlow和Keras建立貓狗圖片深度學習分類器 May 16, 2023 am 09:34 AM

在本文中,我們將使用TensorFlow和Keras建立一個影像分類器,可以區分貓和狗的影像。為了做到這一點,我們將使用TensorFlow資料集中的cats_vs_dogs資料集。該資料集由25000張打過標籤的貓狗的圖像組成,其中80%的圖像用於訓練,10%用於驗證,10%用於測試。載入資料我們從使用TensorFlowDatasets載入資料集開始。將資料集拆分為訓練集、驗證集和測試集,分別佔資料的80%、10%和10%,並定義一個函數來顯示資料集中的一些樣本影像。 importtenso

MySQL ISNULL 函數詳解及用法介紹 MySQL ISNULL 函數詳解及用法介紹 Mar 01, 2024 pm 05:24 PM

MySQL中的ISNULL()函數是用來判斷指定表達式或列是否為NULL的函數。它傳回一個布林值,如果表達式為NULL則回傳1,否則回傳0。 ISNULL()函數可以在SELECT語句中使用,也可以在WHERE子句中進行條件判斷。 1.ISNULL()函數的基本語法:ISNULL(expression)其中,expression是要判斷是否為NULL的表達式或

See all articles