上回咱們說到專案的目錄以及各個檔案的作用,這回我們自頂向下開始分析該專案。專案開始於tf_train_ctc.py檔案。
**如下圖所示:
if __name__ == '__main__':
import click
# use click to parse command line arguments
@click.command()
@click.option('--config', default='neural_network.ini', help='configuration file name')
@click.option('--name', default=none, help='model name for logging')
@click.option('--debug', type=bool, default=false,
help='use debug settings in config file')
# train rnn model using a given configuration file
defmain
(config='neural_network.ini', name=none, debug=false):
logging.basicconfig(level=logging.debug,
format='%(asctime)s [%(levelname)s] %(name)s: %(message)s')
global logger
logger = logging.getlogger(os.path.basename(__file__))
# create the tf_train_ctc class
tf_train_ctc = tf_train_ctc(
config_file=config, model_name=name, debug=debug)
# run the training
tf_train_ctc.run_model()
main()
可以看到,該段**主要初始化了tf_train_ctc這個類,然後呼叫該類的run_model()函式訓練模型。下面我們細細分解該類。
該類所包含的方法如下圖所示:
方法名主要作用
init通過neural_network.ini初始化model
load_configs
讀取neural_network.ini中的配置資訊
set_up_directories
設定session/summary資料存放目錄
set_up_model
獲得訓練所需資料以及配置
run_model
執行模型訓練相關操作
setup_network_and_graph
配置網路的輸入輸出
load_placeholder_into_network
構建******lstm/birnn網路
setup_loss_function
設定網路的ctc_loss函式
setup_optimizer
使用adamoptimizer優化
setup_decoder
配置網路輸出的decoder
setup_summary_statistics
使用tensorboard讀取訓練時的相關資訊
run_training_epochs
每次訓練迭代呼叫的函式
run_validation_step
驗證網路呼叫的函式
validation_and_checkpoint_check
設定儲存模型引數時間點以及驗證模型引數的時間點
run_batches
執行乙個batch呼叫的函式
由前面可以知道tf_train_ctc類中最主要的兩個函式是init和run_model,這兩個函式通過呼叫該類中其他的函式分別實現模型的初始化和訓練,其呼叫關係如下所示:
其中configuration包含以下函式:
其中run_training_epochs呼叫如下函式:
本回簡要介紹了tf_train_ctc內部的函式呼叫關係圖,給出了該訓練模型的骨架。下回我們結合具體**介紹模型是如何初始化的。
自頂向下分析乙個簡單的語音識別系統(十)
接著上回結束的地方,本回我們來分析sparse tuple to texts函式和ndarray to text函式。首先分析sparse tuple to texts函式。給出 如下 def sparse tuple to texts tuple indices tuple 0 values tu...
簡述自頂向下的語法分析
在我們得到了context free grammar 之後,下一步就要將它轉換成一棵語法分析樹了,語法分析樹使得我們的編譯器能夠識別輸入串是否符合我們的context free grammar 中文翻譯為上下文無關語言 有兩種方法能夠將context free grammar轉換為語法分析樹。今天我...
自頂向下的語法分析(修改)
自頂向下語法分析可以被看作是為輸入串構造語法分析樹的問題,它從語法分析樹的根結點開始 按照先序遍歷建立這棵語法分析樹的各個結點。自頂向下語法分析也可以被看作尋找輸入串的最左推導的過程。遞迴下降的語法分析 乙個遞迴下降語法分析程式由一組過程組成,每個非終結符號有乙個對應的過程。程式的執行從開始符號對應...