Keras官方中文文件 函式式模型API

2022-08-24 23:00:16 字數 4001 閱讀 4541

為什麼叫「函式式模型」,請檢視「keras新手指南」的相關部分

keras的函式式模型為model,即廣義的擁有輸入和輸出的模型,我們使用model來初始化乙個函式式模型

from keras.models import model

from keras.layers import input, dense

a = input(shape=(32,))

b = dense(32)(a)

model = model(inputs=a, outputs=b)

在這裡,我們的模型以a為輸入,以b為輸出,同樣我們可以構造擁有多輸入和多輸出的模型

model = model(inputs=[a1, a2], outputs=[b1, b3, b3])
compile(self, optimizer, loss, metrics=none, loss_weights=none, sample_weight_mode=none, weighted_metrics=none, target_tensors=none)
本函式編譯模型以供訓練,引數有

當為引數傳入非法值時會丟擲異常

【tips】如果你只是載入模型並利用其predict,可以不用進行compile。在keras中,compile主要完成損失函式和優化器的一些配置,是為訓練服務的。predict會在內部進行符號函式的編譯工作(通過呼叫_make_predict_function生成函式),

fit(self, x=none, y=none, batch_size=none, epochs=1, verbose=1, callbacks=none, validation_split=0.0, validation_data=none, shuffle=true, class_weight=none, sample_weight=none, initial_epoch=0, steps_per_epoch=none, validation_steps=none)
本函式用以訓練模型,引數有:

輸入資料與規定資料不匹配時會丟擲錯誤

fit函式返回乙個history的物件,其history.history屬性記錄了損失函式和其他指標的數值隨epoch變化的情況,如果有驗證集的話,也包含了驗證集的這些指標變化情況

evaluate(self, x, y, batch_size=32, verbose=1, sample_weight=none)
本函式按batch計算在某些輸入資料上模型的誤差,其引數有:

本函式返回乙個測試誤差的標量值(如果模型沒有其他評價指標),或乙個標量的list(如果模型還有其他的評價指標)。model.metrics_names將給出list中各個值的含義。

如果沒有特殊說明,以下函式的引數均保持與fit的同名引數相同的含義

如果沒有特殊說明,以下函式的verbose引數(如果有)均只能取0或1

predict(self, x, batch_size=32, verbose=0)
本函式按batch獲得輸入資料對應的輸出,其引數有:

函式的返回值是**值的numpy array

train_on_batch(self, x, y, class_weight=none, sample_weight=none)
本函式在乙個batch的資料上進行一次引數更新

函式返回訓練誤差的標量值或標量值的list,與evaluate的情形相同。

test_on_batch(self, x, y, sample_weight=none)
本函式在乙個batch的樣本上對模型進行評估

函式的返回與evaluate的情形相同

predict_on_batch(self, x)
本函式在乙個batch的樣本上對模型進行測試

函式返回模型在乙個batch上的**結果

fit_generator(self, generator, steps_per_epoch, epochs=1, verbose=1, callbacks=none, validation_data=none, validation_steps=none, class_weight=none, max_q_size=10, workers=1, pickle_safe=false, initial_epoch=0)
利用python的生成器,逐個生成資料的batch並進行訓練。生成器與模型將並行執行以提高效率。例如,該函式允許我們在cpu上進行實時的資料提公升,同時在gpu上進行模型訓練

函式的引數是:

epochs:整數,資料迭代的輪數

verbose:日誌顯示,0為不在標準輸出流輸出日誌資訊,1為輸出進度條記錄,2為每個epoch輸出一行記錄

validation_data:具有以下三種形式之一

validation_steps: 當validation_data為生成器時,本引數指定驗證集的生成器返回次數

class_weight:規定類別權重的字典,將類別對映為權重,常用於處理樣本不均衡問題。

sample_weight:權值的numpy array,用於在訓練時調整損失函式(僅用於訓練)。可以傳遞乙個1d的與樣本等長的向量用於對樣本進行1對1的加權,或者在面對時序資料時,傳遞乙個的形式為(samples,sequence_length)的矩陣來為每個時間步上的樣本賦不同的權。這種情況下請確定在編譯模型時新增了sample_weight_mode='temporal'

workers:最大程序數

max_q_size:生成器佇列的最大容量

pickle_safe: 若為真,則使用基於程序的執行緒。由於該實現依賴多程序,不能傳遞non picklable(無法被pickle序列化)的引數到生成器中,因為無法輕易將它們傳入子程序中。

initial_epoch: 從該引數指定的epoch開始訓練,在繼續之前的訓練時有用。

函式返回乙個history物件

例子

def generate_arrays_from_file(path):

while 1:

f = open(path)

for line in f:

# create numpy arrays of input data

# and labels, from each line in the file

x1, x2, y = process_line(line)

yield (, )

f.close()

model.fit_generator(generate_arrays_from_file('/my_file.txt'),

steps_per_epoch=10000, epochs=10)

evaluate_generator(self, generator, steps, max_q_size=10, workers=1, pickle_safe=false)
本函式使用乙個生成器作為資料來源,來評估模型,生成器應返回與test_on_batch的輸入資料相同型別的資料。

函式的引數是:

predict_generator(self, generator, steps, max_queue_size=10, workers=1, use_multiprocessing=false, verbose=0)
從乙個生成器上獲取資料並進行**,生成器應返回與predict_on_batch輸入類似的資料

函式的引數是:

艾伯特(國內第一家人工智慧門戶

Keras官方中文文件 效能評估Metrices

效能評估模組提供了一系列用於模型效能評估的函式,這些函式在模型編譯時由metrics關鍵字設定 效能評估函式類似與目標函式,只不過該效能的評估結果講不會用於訓練.可以通過字串來使用域定義的效能評估函式 model.compile loss mean squared error optimizer s...

python官方 Python官方中文文件強勢來襲

python 官方支援的文件一直沒有中文。小夥伴們已經習慣了原汁原味的英文文件,但如果有官方中文文件,對於初學者來說,門檻會大大的降低。現在中文文件強勢來襲 以前也是有一些第三方維護的 python 中文文件,不過可能因為人力等限制,並做不到同步更新與維護。目前也有很多高質量的 python 中文資...

keras中文版官方文件

keras是乙個高層神經網路api,由純python編寫而成並基tensorflow theano以及cntk後端。快速開始序慣 sequential 模型 序貫模型是多個網路層的線性堆疊,也就是 一條路走到黑 指定輸入資料的shape 編譯 compile接受三個引數 優化器,損失函式,指標列表m...