ckpt函數(shù)python,ck類函數(shù)

如何在win10下配置anaconda環(huán)境變量

安裝之后配置環(huán)境變量的步驟如下:

為舟曲等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及舟曲網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站設(shè)計、成都做網(wǎng)站、舟曲網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

1,點“我的電腦”,右鍵選“屬性”

2,選擇:高級系統(tǒng)設(shè)置

3,選擇:環(huán)境變量

4,在“系統(tǒng)變量”中選中“Path”

5,點“編輯”-再點“編輯文本”

6,在“變量值”一欄,把自己所安裝的python路徑拷進去就可以了,我安裝的路徑是“C:\Python27”。

7,完成之后,一路點擊確定關(guān)閉,就可以了。

8,這里要強調(diào)一下,現(xiàn)在下載的python都自帶pip,pip在python目錄下的Scripts目錄下,添加到系統(tǒng)的path路徑中就可以使用了。

tensorflow怎么調(diào)用ckpt繼續(xù)訓(xùn)練

基本使用

使用 TensorFlow, 你必須明白 TensorFlow:

使用圖 (graph) 來表示計算任務(wù).

在被稱之為 會話 (Session) 的上下文 (context) 中執(zhí)行圖.

使用 tensor 表示數(shù)據(jù).

通過 變量 (Variable) 維護狀態(tài).

使用 feed 和 fetch 可以為任意的操作(arbitrary operation) 賦值或者從其中獲取數(shù)據(jù).

綜述

TensorFlow 是一個編程系統(tǒng), 使用圖來表示計算任務(wù). 圖中的節(jié)點被稱之為 op

(operation 的縮寫). 一個 op 獲得 0 個或多個 Tensor, 執(zhí)行計算,

產(chǎn)生 0 個或多個 Tensor. 每個 Tensor 是一個類型化的多維數(shù)組.

例如, 你可以將一小組圖像集表示為一個四維浮點數(shù)數(shù)組,

這四個維度分別是 [batch, height, width, channels].

一個 TensorFlow 圖描述了計算的過程. 為了進行計算, 圖必須在 會話 里被啟動.

會話 將圖的 op 分發(fā)到諸如 CPU 或 GPU 之類的 設(shè)備 上, 同時提供執(zhí)行 op 的方法.

這些方法執(zhí)行后, 將產(chǎn)生的 tensor 返回. 在 Python 語言中, 返回的 tensor 是

numpy ndarray 對象; 在 C 和 C++ 語言中, 返回的 tensor 是

tensorflow::Tensor 實例.

計算圖

TensorFlow 程序通常被組織成一個構(gòu)建階段和一個執(zhí)行階段. 在構(gòu)建階段, op 的執(zhí)行步驟

被描述成一個圖. 在執(zhí)行階段, 使用會話執(zhí)行執(zhí)行圖中的 op.

例如, 通常在構(gòu)建階段創(chuàng)建一個圖來表示和訓(xùn)練神經(jīng)網(wǎng)絡(luò), 然后在執(zhí)行階段反復(fù)執(zhí)行圖中的訓(xùn)練 op.

TensorFlow 支持 C, C++, Python 編程語言. 目前, TensorFlow 的 Python 庫更加易用,

它提供了大量的輔助函數(shù)來簡化構(gòu)建圖的工作, 這些函數(shù)尚未被 C 和 C++ 庫支持.

三種語言的會話庫 (session libraries) 是一致的.

構(gòu)建圖

構(gòu)建圖的第一步, 是創(chuàng)建源 op (source op). 源 op 不需要任何輸入, 例如 常量 (Constant). 源 op 的輸出被傳遞給其它 op 做運算.

Python 庫中, op 構(gòu)造器的返回值代表被構(gòu)造出的 op 的輸出, 這些返回值可以傳遞給其它

op 構(gòu)造器作為輸入.

TensorFlow Python 庫有一個默認(rèn)圖 (default graph), op 構(gòu)造器可以為其增加節(jié)點. 這個默認(rèn)圖對

許多程序來說已經(jīng)足夠用了. 閱讀 Graph 類 文檔

來了解如何管理多個圖.

import tensorflow as tf

# 創(chuàng)建一個常量 op, 產(chǎn)生一個 1x2 矩陣. 這個 op 被作為一個節(jié)點

# 加到默認(rèn)圖中.

#

# 構(gòu)造器的返回值代表該常量 op 的返回值.

matrix1 = tf.constant([[3., 3.]])

# 創(chuàng)建另外一個常量 op, 產(chǎn)生一個 2x1 矩陣.

matrix2 = tf.constant([[2.],[2.]])

# 創(chuàng)建一個矩陣乘法 matmul op , 把 #39;matrix1#39; 和 #39;matrix2#39; 作為輸入.

# 返回值 #39;product#39; 代表矩陣乘法的結(jié)果.

product = tf.matmul(matrix1, matrix2)

默認(rèn)圖現(xiàn)在有三個節(jié)點, 兩個 constant() op, 和一個matmul() op. 為了真正進行矩陣相乘運算, 并得到矩陣乘法的

結(jié)果, 你必須在會話里啟動這個圖.

在一個會話中啟動圖

構(gòu)造階段完成后, 才能啟動圖. 啟動圖的第一步是創(chuàng)建一個 Session 對象, 如果無任何創(chuàng)建參數(shù),

會話構(gòu)造器將啟動默認(rèn)圖.

欲了解完整的會話 API, 請閱讀Session 類.

# 啟動默認(rèn)圖.

sess = tf.Session()

# 調(diào)用 sess 的 #39;run()#39; 方法來執(zhí)行矩陣乘法 op, 傳入 #39;product#39; 作為該方法的參數(shù).

# 上面提到, #39;product#39; 代表了矩陣乘法 op 的輸出, 傳入它是向方法表明, 我們希望取回

# 矩陣乘法 op 的輸出.

#

# 整個執(zhí)行過程是自動化的, 會話負(fù)責(zé)傳遞 op 所需的全部輸入. op 通常是并發(fā)執(zhí)行的.

#

# 函數(shù)調(diào)用 #39;run(product)#39; 觸發(fā)了圖中三個 op (兩個常量 op 和一個矩陣乘法 op) 的執(zhí)行.

#

# 返回值 #39;result#39; 是一個 numpy `ndarray` 對象.

result = sess.run(product)

print result

# == [[ 12.]]

# 任務(wù)完成, 關(guān)閉會話.

sess.close()

Session 對象在使用完后需要關(guān)閉以釋放資源. 除了顯式調(diào)用 close 外, 也可以使用 "with" 代碼塊

來自動完成關(guān)閉動作.

with tf.Session() as sess:

result = sess.run([product])

print result

在實現(xiàn)上, TensorFlow 將圖形定義轉(zhuǎn)換成分布式執(zhí)行的操作, 以充分利用可用的計算資源(如 CPU

或 GPU). 一般你不需要顯式指定使用 CPU 還是 GPU, TensorFlow 能自動檢測. 如果檢測到 GPU, TensorFlow

會盡可能地利用找到的第一個 GPU 來執(zhí)行操作.

如果機器上有超過一個可用的 GPU, 除第一個外的其它 GPU 默認(rèn)是不參與計算的. 為了讓 TensorFlow

使用這些 GPU, 你必須將 op 明確指派給它們執(zhí)行. withDevice 語句用來指派特定的 CPU 或 GPU

執(zhí)行操作:

with tf.Session() as sess:

with tf.device("/gpu:1"):

matrix1 = tf.constant([[3., 3.]])

matrix2 = tf.constant([[2.],[2.]])

product = tf.matmul(matrix1, matrix2)

設(shè)備用字符串進行標(biāo)識. 目前支持的設(shè)備包括:

"/cpu:0": 機器的 CPU.

"/gpu:0": 機器的第一個 GPU, 如果有的話.

"/gpu:1": 機器的第二個 GPU, 以此類推.

閱讀使用GPU章節(jié), 了解 TensorFlow GPU 使用的更多信息.

交互式使用

文檔中的 Python 示例使用一個會話 Session 來

啟動圖, 并調(diào)用 Session.run() 方法執(zhí)行操作.

為了便于使用諸如 IPython 之類的 Python 交互環(huán)境, 可以使用

InteractiveSession 代替

Session 類, 使用 Tensor.eval()

和 Operation.run() 方法代替

Session.run(). 這樣可以避免使用一個變量來持有會話.

# 進入一個交互式 TensorFlow 會話.

import tensorflow as tf

sess = tf.InteractiveSession()

x = tf.Variable([1.0, 2.0])

a = tf.constant([3.0, 3.0])

# 使用初始化器 initializer op 的 run() 方法初始化 #39;x#39;

x.initializer.run()

# 增加一個減法 sub op, 從 #39;x#39; 減去 #39;a#39;. 運行減法 op, 輸出結(jié)果

sub = tf.sub(x, a)

print sub.eval()

# == [-2. -1.]

Tensor

TensorFlow 程序使用 tensor 數(shù)據(jù)結(jié)構(gòu)來代表所有的數(shù)據(jù), 計算圖中, 操作間傳遞的數(shù)據(jù)都是 tensor.

你可以把 TensorFlow tensor 看作是一個 n 維的數(shù)組或列表. 一個 tensor 包含一個靜態(tài)類型 rank, 和

一個 shape. 想了解 TensorFlow 是如何處理這些概念的, 參見

Rank, Shape, 和 Type.

變量

Variables for more details.

變量維護圖執(zhí)行過程中的狀態(tài)信息. 下面的例子演示了如何使用變量實現(xiàn)一個簡單的計數(shù)器. 參見

變量 章節(jié)了解更多細(xì)節(jié).

# 創(chuàng)建一個變量, 初始化為標(biāo)量 0.

state = tf.Variable(0, name="counter")

# 創(chuàng)建一個 op, 其作用是使 state 增加 1

one = tf.constant(1)

new_value = tf.add(state, one)

update = tf.assign(state, new_value)

# 啟動圖后, 變量必須先經(jīng)過`初始化` (init) op 初始化,

# 首先必須增加一個`初始化` op 到圖中.

init_op = tf.initialize_all_variables()

# 啟動圖, 運行 op

with tf.Session() as sess:

# 運行 #39;init#39; op

sess.run(init_op)

# 打印 #39;state#39; 的初始值

print sess.run(state)

# 運行 op, 更新 #39;state#39;, 并打印 #39;state#39;

for _ in range(3):

sess.run(update)

print sess.run(state)

# 輸出:

# 0

# 1

# 2

# 3

代碼中 assign() 操作是圖所描繪的表達(dá)式的一部分, 正如 add() 操作一樣. 所以在調(diào)用 run()

執(zhí)行表達(dá)式之前, 它并不會真正執(zhí)行賦值操作.

通常會將一個統(tǒng)計模型中的參數(shù)表示為一組變量. 例如, 你可以將一個神經(jīng)網(wǎng)絡(luò)的權(quán)重作為某個變量存儲在一個 tensor 中.

在訓(xùn)練過程中, 通過重復(fù)運行訓(xùn)練圖, 更新這個 tensor.

Fetch

為了取回操作的輸出內(nèi)容, 可以在使用 Session 對象的 run() 調(diào)用 執(zhí)行圖時, 傳入一些 tensor,

這些 tensor 會幫助你取回結(jié)果. 在之前的例子里, 我們只取回了單個節(jié)點 state, 但是你也可以取回多個

tensor:

input1 = tf.constant(3.0)

input2 = tf.constant(2.0)

input3 = tf.constant(5.0)

intermed = tf.add(input2, input3)

mul = tf.mul(input1, intermed)

with tf.Session() as sess:

result = sess.run([mul, intermed])

print result

# 輸出:

# [array([ 21.], dtype=float32), array([ 7.], dtype=float32)]

需要獲取的多個 tensor 值,在 op 的一次運行中一起獲得(而不是逐個去獲取 tensor)。

Feed

上述示例在計算圖中引入了 tensor, 以常量或變量的形式存儲. TensorFlow 還提供了 feed 機制, 該機制

可以臨時替代圖中的任意操作中的 tensor 可以對圖中任何操作提交補丁, 直接插入一個 tensor.

feed 使用一個 tensor 值臨時替換一個操作的輸出結(jié)果. 你可以提供 feed 數(shù)據(jù)作為 run() 調(diào)用的參數(shù).

feed 只在調(diào)用它的方法內(nèi)有效, 方法結(jié)束, feed 就會消失. 最常見的用例是將某些特殊的操作指定為 "feed" 操作,

標(biāo)記的方法是使用 tf.placeholder() 為這些操作創(chuàng)建占位符.

input1 = tf.placeholder(tf.float32)

input2 = tf.placeholder(tf.float32)

output = tf.mul(input1, input2)

with tf.Session() as sess:

print sess.run([output], feed_dict={input1:[7.], input2:[2.]})

# 輸出:

# [array([ 14.], dtype=float32)]

for a larger-scale example of feeds.

如果沒有正確提供 feed, placeholder() 操作將會產(chǎn)生錯誤.

MNIST 全連通 feed 教程

(source code)

給出了一個更大規(guī)模的使用 feed 的例子.

python中object_detection.utils庫的作用

準(zhǔn)備數(shù)據(jù)集。

在訓(xùn)練完成后需要將訓(xùn)練產(chǎn)生的最后一組meta,index,ckpt,checkpoint文件,objectdetectionapi提供了預(yù)訓(xùn)練好的網(wǎng)絡(luò)。

庫名稱簡介Mimetypes,Python標(biāo)準(zhǔn)庫,映射文件名到MIME類型。imghdr,Python標(biāo)準(zhǔn)庫,確定圖像類型。pythonmagic,libmagic文件類型識別庫,Python接口格式。pathpy,ospath模塊的二次封裝。

tensorflow怎么調(diào)用ckpt繼續(xù)訓(xùn)練?

訓(xùn)練完一個模型后,為了以后重復(fù)使用,通常我們需要對模型的結(jié)果進行保存。如果用Tensorflow去實現(xiàn)神經(jīng)網(wǎng)絡(luò),所要保存的就是神經(jīng)網(wǎng)絡(luò)中的各項權(quán)重值。建議可以使用Saver類保存和加載模型的結(jié)果。

1、使用tf.train.Saver.save()方法保存模型

sess: 用于保存變量操作的會話。

save_path: String類型,用于指定訓(xùn)練結(jié)果的保存路徑。

global_step: 如果提供的話,這個數(shù)字會添加到save_path后面,用于構(gòu)建checkpoint文件。這個參數(shù)有助于我們區(qū)分不同訓(xùn)練階段的結(jié)果。

2、使用tf.train.Saver.restore方法價值模型

sess: 用于加載變量操作的會話。

save_path: 同保存模型是用到的的save_path參數(shù)。

下面通過一個代碼演示這兩個函數(shù)的使用方法

假設(shè)保存變量的時候是

checkpoint_filepath='models/train.ckpt'

saver.save(session,checkpoint_filepath)

則從文件讀變量取值繼續(xù)訓(xùn)練是

saver.restore(session,checkpoint_filepath)

mxnet數(shù)據(jù)集的制作和訓(xùn)練

安裝mxnet

Cpu版:pip install mxnet

Gpu版:pip install mxnet-cu80

若cuda版本為cuda-9.0,改為pip install mxnet-90

pip或apt安裝sklearn,easydict

制作數(shù)據(jù)集

將圖片分類并放入不同文件夾

運行python im2rec.py train --list ./可生成.list文件,包含圖片列表

運行python im2rec.py train ./ train.rec和train.idx訓(xùn)練文件

--train-ratio 0.9生成驗證數(shù)據(jù)集.bin文件參數(shù)為訓(xùn)練數(shù)據(jù)集和驗證數(shù)據(jù)集之比

--resize 128 128指定生成數(shù)據(jù)集的圖片大小

參考

將生成的.rec,.idx,.bin(非必須)文件放入datasets/faces_emore中

新建property文本,寫入圖片數(shù)量,圖片長寬 example : 86545 128 128

例:

python -u ?train.py --network m1 --loss softmax --dataset emore,1

使用softma、nosoftmax、arcface或cosface訓(xùn)練完成后,使用生成模型運行三元組損失訓(xùn)練

例:

Python -u train.py --network m1 -loss triplet --lr 0.005 --pretrained ./models/m1-softmax-emore

參數(shù)說明

--dataset訓(xùn)練集位置,具體位置查看config.py 108至120行

--network網(wǎng)絡(luò)模型 候選參數(shù) : r100 r100fc r50 r50v1(基于resnet) d169 d201(基于densenet) y1 y2(基于mobilefacenet) m1 m0.5(基于mobilenet) mnas mnas05 mnas025(基于mnasnet)

--loss損失函數(shù) 候選參數(shù) :softmax(標(biāo)準(zhǔn)損失函數(shù)) nsoftmax (組合損失函數(shù))arcface cosface combined triplet(三元組損失) atriplet

--ckpt模型存儲時間。0: 放棄存儲 1:必要時存儲(驗證集準(zhǔn)確率達(dá)標(biāo)時,若無驗證集則不存儲 3:總是存儲)

--lr學(xué)習(xí)率

--lr-steps學(xué)習(xí)率改變方法 例:’10000,20000,2200000’即達(dá)到圖片數(shù)量時學(xué)習(xí)率*0.1

--per-batch-size每次的訓(xùn)練的數(shù)量 數(shù)量越少,占用顯卡內(nèi)存越少

參考

新聞標(biāo)題:ckpt函數(shù)python,ck類函數(shù)
文章來源:http://muchs.cn/article28/hcgscp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、定制開發(fā)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站排名、關(guān)鍵詞優(yōu)化、手機網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營