标签(空格分隔): 文章复现
C3D代码解析
1、main函数
def main(_):
run_training()
if __name__ == '__main__':
tf.app.run()
if __name__ == "__main__":
means current file is executed under a shell instead of imported as a module.
__name__
是当前模块名,当模块被直接运行时模块名为 __main__
。这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。
tf.app.run()
执行main函数之前首先进行flags的解析,也就是说TensorFlow通过设置flags来传递tf.app.run()所需要的参数,我们可以直接在程序运行前初始化flags,也可以在运行程序的时候设置命令行参数来达到传参的目的。
```
学习使用 tf.app.flags 使用,全局变量
可以再命令行中运行也是比较方便,如果只写 python app_flags.py 则代码运行时默认程序里面设置的默认设置
若 python app_flags.py --train_data_path <绝对路径 train.txt> --max_sentence_len 100
--embedding_size 100 --learning_rate 0.05 代码再执行的时候将会按照上面的参数来运行程序
````
- import tensorflow as tf
-
- FLAGS = tf.app.flags.FLAGS
-
- # tf.app.flags.DEFINE_string("param_name", "default_val", "description")
- tf.app.flags.DEFINE_string("train_data_path", "/home/yongcai/chinese_fenci/train.txt", "training data dir")
- tf.app.flags.DEFINE_string("log_dir", "./logs", " the log dir")
- tf.app.flags.DEFINE_integer("max_sentence_len", 80, "max num of tokens per query")
- tf.app.flags.DEFINE_integer("embedding_size", 50, "embedding size")
-
- tf.app.flags.DEFINE_float("learning_rate", 0.001, "learning rate")
-
-
-