命令行flags: Python flags & TensorFlow flags

内容提取自Medium

flags

flags可以帮助我们通过命令行来动态的更改代码中的参数。为了更好的理解TensorFlow的命令行flags(标记)功能,我们先简单了解一下Python的flags

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2018/9/19 10:46
# @Author  : Young.W
# @File    : demo_of_flags.py
# @Project : 随笔

from absl import flags
from absl import app

FLAGS = flags.FLAGS

flags.DEFINE_string('model', None, 'model to run')

def main(argv):
    print('Hello World')
    print('selected model', FLAGS.model)

if __name__ == '__main__':
    app.run(main)

这是一个简单的示例程序来展示如何使用 command line flags,除了使用 absl 外,还可以使用 argparser

import argparser

现在我们可以在命令行中运行我们的示例程序

# 运行示例程序
python demo_of_flags.py

# 更改相应参数
python demo_of_flags.py --model "My model"

# 获得帮助信息
python demo_of_flags.py -help
python demo_of_flags.py -helpfull

TensorFlow中的flags

机器学习的模型中有大量需要tuning的超参数,因此我们需要一种灵活的方式对代码进行调整。下面的示例展示了如何达成我们的需求。Source Code

import tensorflow as tf

flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_float(‘learning_rate’, 0.01, ‘Initial learning rate.’)
flags.DEFINE_integer(‘max_steps’, 2000, ‘Number of steps to run trainer.’)
flags.DEFINE_integer(‘hidden1’, 128, ‘Number of units in hidden layer 1.’)
flags.DEFINE_integer(‘hidden2’, 32, ‘Number of units in hidden layer 2.’)
flags.DEFINE_integer(‘batch_size’, 100, ‘Batch size. ‘
‘Must divide evenly into the dataset sizes.’)
flags.DEFINE_string(‘train_dir’, ‘data’, ‘Directory to put the training data.’)
flags.DEFINE_boolean(‘fake_data’, False, ‘If true, uses fake data ‘
‘for unit testing.’)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 与 TensorFlow 的初次相遇 https://jorditorres.org/wp-content/upl...
    布客飞龙阅读 9,335评论 2 89
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,329评论 19 139
  • 十年前上大学那会儿,希望自己日后成为一名作家,没想到十年后我真的成为了一个地地道道的“坐家”。哈哈!最近在家一直没...
    译娴阅读 3,907评论 15 9
  • 我还是很喜欢你 像男生口中的那句 我喜欢你 羞涩不已 我还是很喜欢你 像女生口中的那句 我愿意 甜蜜无比 我还...
    蔡依彤阅读 2,383评论 0 1
  • 今天,天气不错很晴朗可是突然一下家里停电了。我就很着急太热了因为家里电风扇需要电没电我就没法吹电风扇了。忽然...
    欧阳至俊阅读 877评论 0 0