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"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM