文档检测
This commit is contained in:
164
object_detection/core/config.py
Normal file
164
object_detection/core/config.py
Normal file
@@ -0,0 +1,164 @@
|
||||
import os
|
||||
|
||||
import numpy as np
|
||||
|
||||
|
||||
class SystemConfig(object):
|
||||
def __init__(self):
|
||||
self._configs = {}
|
||||
self._configs["dataset"] = None
|
||||
self._configs["sampling_function"] = "coco_detection"
|
||||
|
||||
# Training Config
|
||||
self._configs["display"] = 5
|
||||
self._configs["snapshot"] = 400
|
||||
self._configs["stepsize"] = 5000
|
||||
self._configs["learning_rate"] = 0.001
|
||||
self._configs["decay_rate"] = 10
|
||||
self._configs["max_iter"] = 100000
|
||||
self._configs["val_iter"] = 20
|
||||
self._configs["batch_size"] = 1
|
||||
self._configs["snapshot_name"] = None
|
||||
self._configs["prefetch_size"] = 100
|
||||
self._configs["pretrain"] = None
|
||||
self._configs["opt_algo"] = "adam"
|
||||
self._configs["chunk_sizes"] = None
|
||||
|
||||
# Directories
|
||||
self._configs["data_dir"] = "./data"
|
||||
self._configs["cache_dir"] = "./cache"
|
||||
self._configs["config_dir"] = "./config"
|
||||
self._configs["result_dir"] = "./results"
|
||||
|
||||
# Split
|
||||
self._configs["train_split"] = "training"
|
||||
self._configs["val_split"] = "validation"
|
||||
self._configs["test_split"] = "testdev"
|
||||
|
||||
# Rng
|
||||
self._configs["data_rng"] = np.random.RandomState(123)
|
||||
self._configs["nnet_rng"] = np.random.RandomState(317)
|
||||
|
||||
@property
|
||||
def chunk_sizes(self):
|
||||
return self._configs["chunk_sizes"]
|
||||
|
||||
@property
|
||||
def train_split(self):
|
||||
return self._configs["train_split"]
|
||||
|
||||
@property
|
||||
def val_split(self):
|
||||
return self._configs["val_split"]
|
||||
|
||||
@property
|
||||
def test_split(self):
|
||||
return self._configs["test_split"]
|
||||
|
||||
@property
|
||||
def full(self):
|
||||
return self._configs
|
||||
|
||||
@property
|
||||
def sampling_function(self):
|
||||
return self._configs["sampling_function"]
|
||||
|
||||
@property
|
||||
def data_rng(self):
|
||||
return self._configs["data_rng"]
|
||||
|
||||
@property
|
||||
def nnet_rng(self):
|
||||
return self._configs["nnet_rng"]
|
||||
|
||||
@property
|
||||
def opt_algo(self):
|
||||
return self._configs["opt_algo"]
|
||||
|
||||
@property
|
||||
def prefetch_size(self):
|
||||
return self._configs["prefetch_size"]
|
||||
|
||||
@property
|
||||
def pretrain(self):
|
||||
return self._configs["pretrain"]
|
||||
|
||||
@property
|
||||
def result_dir(self):
|
||||
result_dir = os.path.join(self._configs["result_dir"], self.snapshot_name)
|
||||
if not os.path.exists(result_dir):
|
||||
os.makedirs(result_dir)
|
||||
return result_dir
|
||||
|
||||
@property
|
||||
def dataset(self):
|
||||
return self._configs["dataset"]
|
||||
|
||||
@property
|
||||
def snapshot_name(self):
|
||||
return self._configs["snapshot_name"]
|
||||
|
||||
@property
|
||||
def snapshot_dir(self):
|
||||
snapshot_dir = os.path.join(self.cache_dir, "nnet", self.snapshot_name)
|
||||
|
||||
if not os.path.exists(snapshot_dir):
|
||||
os.makedirs(snapshot_dir)
|
||||
return snapshot_dir
|
||||
|
||||
@property
|
||||
def snapshot_file(self):
|
||||
snapshot_file = os.path.join(self.snapshot_dir, self.snapshot_name + "_{}.pkl")
|
||||
return snapshot_file
|
||||
|
||||
@property
|
||||
def config_dir(self):
|
||||
return self._configs["config_dir"]
|
||||
|
||||
@property
|
||||
def batch_size(self):
|
||||
return self._configs["batch_size"]
|
||||
|
||||
@property
|
||||
def max_iter(self):
|
||||
return self._configs["max_iter"]
|
||||
|
||||
@property
|
||||
def learning_rate(self):
|
||||
return self._configs["learning_rate"]
|
||||
|
||||
@property
|
||||
def decay_rate(self):
|
||||
return self._configs["decay_rate"]
|
||||
|
||||
@property
|
||||
def stepsize(self):
|
||||
return self._configs["stepsize"]
|
||||
|
||||
@property
|
||||
def snapshot(self):
|
||||
return self._configs["snapshot"]
|
||||
|
||||
@property
|
||||
def display(self):
|
||||
return self._configs["display"]
|
||||
|
||||
@property
|
||||
def val_iter(self):
|
||||
return self._configs["val_iter"]
|
||||
|
||||
@property
|
||||
def data_dir(self):
|
||||
return self._configs["data_dir"]
|
||||
|
||||
@property
|
||||
def cache_dir(self):
|
||||
if not os.path.exists(self._configs["cache_dir"]):
|
||||
os.makedirs(self._configs["cache_dir"])
|
||||
return self._configs["cache_dir"]
|
||||
|
||||
def update_config(self, new):
|
||||
for key in new:
|
||||
if key in self._configs:
|
||||
self._configs[key] = new[key]
|
||||
return self
|
||||
Reference in New Issue
Block a user