作為深度調(diào)參工程師喊儡,能夠自動(dòng)化的腳本一鍵完成調(diào)參就很開心了拨与。TensorFlow定義了tf.app.flags,用于支持接受命令行傳遞參數(shù)艾猜。通過改變的相關(guān)參數(shù)买喧,存儲(chǔ)中間變量和結(jié)果,調(diào)出最優(yōu)化的參數(shù)可以大大提高效率匆赃。
深度學(xué)習(xí)基礎(chǔ)
- Tensorflow參數(shù)接口
# -*- coding:utf-8 -*-
# test.py
import tensorflow as tf
FLAGS = tf.app.flags.FLAGS
##第一個(gè)是參數(shù)名稱淤毛,第二個(gè)參數(shù)是默認(rèn)值,第三個(gè)是參數(shù)描述
tf.app.flags.DEFINE_string('str_name', 'def_v_1',"descrip1")
tf.app.flags.DEFINE_integer('int_name', 10,"descript2")
tf.app.flags.DEFINE_boolean('bool_name', False, "descript3")
##必須帶參數(shù)算柳,否則:'TypeError: main() takes no arguments (1 given)'; ##main的參數(shù)名隨意定義低淡,無要求
def main(_):
print(FLAGS.str_name)
print(FLAGS.int_name)
print(FLAGS.bool_name)
if __name__ == '__main__':
#tf.app.run()的作用:先處理flag解析,然后執(zhí)行main函數(shù)
tf.app.run()
運(yùn)行
# 采用默認(rèn)值的方式
python test.py
# def_v_1
# 10
# False
# 有參傳遞的方式
python test.py --str_name="test" --int_name=12
# test
# 12
# False
- 深度學(xué)習(xí)常用的參數(shù)
tf.flags.DEFINE_integer("batch_size", "2", "batch size for training")
tf.flags.DEFINE_string("logs_dir", "logs/", "path to logs directory")
tf.flags.DEFINE_string("data_dir", "MIT_SceneParsing/", "path to dataset")
tf.flags.DEFINE_float("learning_rate", "1e-4", "Learning rate for Adam Optimizer")
tf.flags.DEFINE_string("model_dir", "Model_zoo/", "Path to vgg model mat")
tf.flags.DEFINE_bool('debug', "False", "Debug mode: True/ False")
tf.flags.DEFINE_string('mode', "train", "Mode train/ test/ visualize")