深度学习里的参数管理

2020/9/16 16:03:51

本文主要是介绍深度学习里的参数管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

argparse是python自带的命令行参数解析包,可以用来方便地读取命令行参数。TensorFlow 中定义了 tf.app.flags.FLAGS ,用于接受从终端传入的命令行参数

1、argparse
# name test_arg.py

import argparse

# 命令行参数定义和解析
parser = argparse.ArgumentParser(description="Demo of argparse")
parser.add_argument('--name', type = str,default='Li',help = u'姓名')
parser.add_argument('--year', type = int,default=20)
parser.add_argument('--gent', type = str,default='male',choice = ['female','male'])
args = parser.parse_args()

# 命令行参数调用
name = args.name
year = args.year
print('Hello {} {}'.format(name,year))
#上面的程序还可以这么定义
#parser.add_argument('-y','--year', type = int,default=20)
#当'-'和'--'同时出现的时候,系统默认后者为参数名,前者不是,但是在命令行输入的时候没有这个区分

步骤:
1、首先导入argparse这个包
2、然后利用包中的ArgumentParser类生成parse对象(参数解析器)
3、接着我们通过对象的add_argument函数来增加参数
4、最后采用对象的parse_args获取解析的参数

命令行执行文件:

python test_arg.py --year 25 --name 'liu'
2、tf.app.flags.FLAGS

tf.app.flags.DEFINE_string():定义一个用于接收 string 类型数值的变量;
tf.app.flags.DEFINE_integer() : 定义一个用于接收 int 类型数值的变量;
tf.app.flags.DEFINE_float() : 定义一个用于接收 float 类型数值的变量;
tf.app.flags.DEFINE_boolean() : 定义一个用于接收 bool 类型数值的变量;

“DEFINE_xxx”函数带3个参数,分别是变量名称,默认值,用法描述,例如:

tf.app.flags.DEFINE_string('ckpt_path', 'model/model.ckpt-100000', '''Checkpoint directory to restore''')
#定义一个名称是 "ckpt_path" 的变量,默认值是 ckpt_path = 'model/model.ckpt-100000',描述信息表明这是一个用于保存节点信息的路径。
#example:
# -*- coding=utf-8 -*-
import tensorflow as tf

Flags = tf.app.flags
Flags.DEFINE_string('ckpt_path', 'model/model.ckpt-100000', '''模型保存路径''')
Flags.DEFINE_float('learning_rate',0.0001,'''初始学习率''')
Flags.DEFINE_integer('train_steps', 50000, '''总的训练轮数''')
Flags.DEFINE_boolean('is_use_gpu', False, '''是否使用GPU''')
FLAGS = Flags.FLAGS

print('模型保存路径: {}'.format(FLAGS.ckpt_path))
print('初始学习率: {}'.format(FLAGS.learning_rate))
print('总的训练次数: {}'.format(FLAGS.train_steps))
print('是否使用GPU: {}'.format(FLAGS.is_use_gpu))

//命令行参考上文

参考:



这篇关于深度学习里的参数管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程