google absl.flags库替换操作实践教程

Posted xiexiaokui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了google absl.flags库替换操作实践教程相关的知识,希望对你有一定的参考价值。

google absl.flags库替换操作实践教程

绪论:

google在object detection(包括tensorflow和其他模块)中大量absl.flags。用此方法,可以不用修改源代码,即可直接方便的读取命令行参数,相当于py进行了一定程度的定制。

但此方法有两个显著的缺点:

1. 不兼容windows。测试中表明,路径分隔符 / 和 \ 可能混用,而且不能正确解析,导致文件无法打开。

2. 无调试功能,更无断点。只能通过大量的print或者log来反馈信息,极为低效。

思路:改为标准的py,而并非命令行调用。

步骤:

1.注释

#from absl.flags import FLAGS

2. 定义类

class FLAGS:

pass

3. 可通过以下命令查看当前工作路径:

import os

dir=os.getcwd()

print("dir",dir)

测试表明,在vs中直接运行py文件是,当前工作路径是项目文件夹。

4. 注释掉flags.DEFINE_

例如:

#flags.DEFINE_string(‘data_dir‘, ‘./data/voc2012_raw/VOCdevkit/VOC2012/‘,

# ‘path to raw PASCAL VOC dataset‘)

#flags.DEFINE_enum(‘split‘, ‘train‘, [

# ‘train‘, ‘val‘], ‘specify train or val spit‘)

#flags.DEFINE_string(‘output_file‘, ‘./data/voc2012_train.tfrecord‘, ‘outpot dataset‘)

#flags.DEFINE_string(‘classes‘, ‘./data/voc2012.names‘, ‘classes file‘)

5. 定义FLAGS成员

FLAGS.data_dir="./data/voc2012_raw/VOCdevkit/VOC2012"

FLAGS.split="train"

FLAGS.output_file="./data/voc2012_train.tfrecord"

FLAGS.classes="./data/voc2012.names"

以上是关于google absl.flags库替换操作实践教程的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式基础入门

手把手教你在Linux下搭建Jenkins实现自动部署

怎样替换EDIUS中的素材

CMake | 手把手教你在Windows下编译使用开源库

Jenkins搭建,从零手把手教你入门及项目实践。

汇总多种方法教你绕过 TPM 2.0 安装 Windows 11 操作系统