mirror of
https://github.com/wassname/Castor.git
synced 2026-09-09 11:13:20 +08:00
37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
import os
|
|
import random
|
|
|
|
class RandomParamIterator(object):
|
|
def __init__(self, param_sets):
|
|
self.param_sets = param_sets
|
|
|
|
def random_param_set(self):
|
|
param_set = {}
|
|
for param_key, param_values in self.param_sets.items():
|
|
param_set[param_key] = random.choice(param_values)
|
|
return param_set
|
|
|
|
class Tuner(object):
|
|
def __init__(self, *iterators, limit=500):
|
|
self.iterators = iterators
|
|
self.limit = limit
|
|
|
|
def start(self):
|
|
for i in range(self.limit):
|
|
iterator = random.choice(self.iterators)
|
|
params = iterator.random_param_set()
|
|
print(params)
|
|
arg_str = " ".join("--{}={}".format(k, v) for k, v in params.items())
|
|
os.system("python . {} --output_file local_saves/model{}.pt".format(arg_str, i))
|
|
|
|
def main():
|
|
vgg_param_sets = dict(classifer=["vdpwi"], decay=[0.99, 0.95], lr=[5E-4, 1E-4], mbatch_size=[8, 16],
|
|
optimizer=["adam", "rmsprop"], weight_decay=[0, 1E-5, 5E-4], momentum=[0, 0.15, 0.05])
|
|
res_param_sets = dict(classifier=["resnet"], clip_norm=[5, 7, 9], decay=[0.9, 0.95], lr=[5E-3, 1E-3, 5E-4],
|
|
mbatch_size=[8, 16, 32], rnn_hidden_dim=[150, 250, 300], res_fmaps=[16, 24, 32], res_layers=[4, 8, 16, 24])
|
|
vgg_iterator = RandomParamIterator(vgg_param_sets)
|
|
res_iterator = RandomParamIterator(res_param_sets)
|
|
Tuner(vgg_iterator).start()
|
|
|
|
if __name__ == "__main__":
|
|
main() |