上回我们分析了模型的初始化,花开两朵各表一枝,本回我们说一下上回提到的set_dirs.py。该文件结构如下图所示:
其中,
get_home_dir返回RNN-Tutorial所在目录,代码如下:
def get_home_dir(home_dir=None):
if home_dir is None:
home_dir = os.environ['RNN_TUTORIAL']
return home_dir
get_data_dir/get_model_dir/get_conf_dir函数调用get_home_dir函数,进行相关操作得到相关目录,代码如下:
def get_data_dir(data_dir=None, home_dir=None):
if data_dir is None:
data_dir = os.path.join(get_home_dir(home_dir=home_dir), 'data', 'raw')
# if the beginning of the data_dir is not '/' then prepend home_dir behind it
elif not os.path.isabs(data_dir):
data_dir = os.path.join(get_home_dir(home_dir=home_dir), data_dir)
return data_dir
def get_conf_dir(conf_dir=None, home_dir=None, debug=False):
if conf_dir is None:
conf_dir = os.path.join(get_home_dir(home_dir=home_dir), 'configs')
# Descend to the testing folder if debug==True
if debug:
conf_dir = os.path.join(conf_dir, 'testing')
return conf_dir
def get_model_dir(model_dir=None, home_dir=None):
if model_dir is None:
model_dir = os.path.join(get_home_dir(home_dir=home_dir), 'models')
return model_dir
get_relevant_directories函数调用上面的三个函数,返回相关的三个文件夹的路径,代码如下:
def get_relevant_directories(
home_dir=None,
data_dir=None,
conf_dir=None,
debug=False):
home_dir = get_home_dir(home_dir=home_dir)
data_dir = get_data_dir(data_dir=data_dir, home_dir=home_dir)
conf_dir = get_conf_dir(conf_dir=conf_dir, home_dir=home_dir, debug=debug)
return home_dir, data_dir, conf_dir
本回主要内容结束,下回我们回到主故事线,开始分析run_model函数。