TensorFlow-谷歌深度学习库 命令行参数

程序的入口:

tf.app.run

tf.app.run(
    main=None,
    argv=None
)

运行程序,可以提供‘main’函数以及函数参数列表。处理flag解析然后执行main函数。

什么是flag解析呢?

由于深度学习神经网络往往需要对各种Hyperparameter调优,比如学习率,卷积核参数设置等等, 这时使用命令行调参是非常方便的。

需要用到TensorFlow框架中的tf.app.flags组件

tf.app.flags组件中提供很多自带的设置不同类型命令行参数以及其默认值。比如下面这些:

tf.app.flags.DEFINE_integer
tf.app.flags.DEFINE_string
tf.app.flags.DEFINE_float
tf.app.flags.DEFINE_bool

举个最简单的例子的话是这样:

FLAGS = tf.app.flags.FLAGS  # 声明FLAGS对象

# Configuration (alphabetically)
tf.app.flags.DEFINE_integer(‘batch_size‘, 16,
                            "Number of samples per batch.")

if __name__ == ‘__main__‘:
    tf.app.run() 

tf.ConfigProto

tf.ConfigProto()函数用在创建session的时候,用来对session进行参数配置。

它可以用来

1. 记录设备指派情况 tf.ConfigProto(log_device_placement=True)

是否打印设备分配日志,设置tf.ConfigProto()中参数log_device_placement = True , 会在终端打印出各项操作是在哪个设备上运行的。

tf.set_random_seed(seed)

设置图级随机seed。

依赖于随机seed的操作实际上从两个seed中获取:图级和操作级seed。 这将设置图级别的seed。

其与操作级seed的相互作用如下:

1.如果没有设置图形级别和操作seed,则使用随机seed进行操作。 
2.如果设置了图级seed,但操作seed没有设置:系统确定性地选择与图级seed一起的操作seed,以便获得唯一的随机序列。 
3.如果没有设置图级seed,但是设置了操作seed:使用默认的图级seed和指定的操作seed来确定随机序列。 
4.如果图级和操作seed都被设置:两个seed联合使用以确定随机序列。

http://www.cnblogs.com/antflow/p/7234144.html

原文地址:https://www.cnblogs.com/duwenlu/p/9038999.html

时间: 2024-10-08 11:01:55

TensorFlow-谷歌深度学习库 命令行参数的相关文章

Linux 程序设计学习笔记----命令行参数处理

转载请注明出处.http://blog.csdn.net/suool/article/details/38089001 问题引入----命令行参数及解析 在使用linux时,与windows最大的不同应该就是经常使用命令行来解决大多数问题.比如下面这样的: 而显然我们知道C语言程序的入口是mian函数,即是从main函数开始执行,而main函数的原型是: int main( int argc, char *argv[] ); int main( int argc, char **argv );

python学习——通过命令行参数根据fasta文件中染色体id提取染色体序列

提取fasta文件genome_test.fa中第14号染色体的序列,其内容如下: >chr1 ATATATATAT >chr2 ATATATATATCGCGCGCGCG >chr3 ATATATATATCGCGCGCGCGATATATATAT >chr4 ATATATATATCGCGCGCGCGATATATATATCGCGCGCGCG >chr5 ATATATATATCGCGCGCGCGATATATATATCGCGCGCGCGATATATATAT >chr6 ATCG

TensorFlow命令行参数FLAGS使用

import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' import tensorflow as tf #tensorboard --logdir="./" # 命令行参数 python x.py --max_step=500 tf.app.flags.DEFINE_integer("max_step",1000,"train step number") FLAGS = tf.app.flags.FL

boost之program_options库,解析命令行参数、读取配置文件

一.命令行解析 tprogram_options解析命令行参数示例代码: [cpp] view plaincopy #include <iostream> using namespace std; #include <boost/program_options.hpp> namespace po = boost::program_options; int main(int argc, char*argv[]) { //int level; po::options_descripti

python 命令行参数学习(一)

用了这么久,还没怎么学习python的命令行参数,是在惭愧. 参考文章地址:http://www.cnblogs.com/jianboqi/archive/2013/01/10/2854726.html 自己的代码实例: #-*-coding:utf-8-*- __author__ = 'Deen' ''' import argparse parser = argparse.ArgumentParser() parser.parse_args() ''' ''' import argparse

flag 是Go 标准库提供的解析命令行参数的包QANDA.REN文库

flag flag 是Go 标准库提供的解析命令行参数的包. 使用方式: flag.Type(name, defValue, usage) 其中Type为String, Int, Bool等:并返回一个相应类型的指针. flag.TypeVar(&flagvar, name, defValue, usage) 将flag绑定到一个变量上. 自定义flag 只要实现flag.Value接口即可: type Value interface { String() string Set(string)

springboot学习总结(一)外部配置(命令行参数配置、常规属性配置、类型安全的配置之基于properties)

学习的内容主要是汪云飞的<Spring Boot实战> (一)命令行参数配置 springboot项目可以基于jar包运行,打开jar的程序可以通过下面命令行运行: java -jar xxx.jar 可以通过以下命令修改tomcat端口号 java -jar xxx.jar --server.port=9090 (二)常规属性配置 在springboot项目中,我们只需在application.properties定义属性,直接使用@Value注入即可 (1)application.prop

【NS-3学习】ns3-模拟基础:关键概念,日志,命令行参数

前言 本篇博客先介绍在仿真过程中会使用到的一些关键概念,然后介绍便于调试仿真脚本的常用技术:日志.命令行参数. 关键概念 节点 在因特网术语中,主机(终端)是指任何一台连接到网络的计算设备.ns-3并非一个专门的因特网模拟器,而是一个网络模拟器.为此不采用术语"主机",因为这个词太容易让人联想到因特网以及相关协议.因此,选用其他术语:节点. 可以将节点理解为一个空的机箱,我们可以向其中添加各种功能,将其变成我们想要的主机或者交换机. 节点由C++中的Node类来描述.Node类提供了用

python学习笔记14-optparse真正的命令行参数

真正的命令行参数 -c/--chars:命令行选项 dest:为选项定义变量名,值characters就是'-c'选项的名字 default=False:characters的值False,意思是默认情况下命令不带-c选项 help:选项的解释说明部分 [[email protected] wc]# vim 9_optparse.py  #!/usr/bin/env python import sys, os from optparse import OptionParser parser =