При использовании Sacred
необходимо передать все переменные из конфигурации эксперимента в основную функцию, например,
ex = Experiment('iris_rbf_svm')
@ex.config
def cfg():
C = 1.0
gamma = 0.7
@ex.automain
def run(C, gamma):
iris = datasets.load_iris()
per = permutation(iris.target.size)
iris.data = iris.data[per]
iris.target = iris.target[per]
clf = svm.SVC(C, 'rbf', gamma=gamma)
clf.fit(iris.data[:90],
iris.target[:90])
return clf.score(iris.data[90:],
iris.target[90:])
Как видите, в этом эксперименте есть 2 переменные C
и gamma
, и они передаются в основную функцию.
В реальных сценариях существуют десятки экспериментальных переменных, и передача их всех в основную функцию становится действительно загроможденной.Есть ли способ передать их все как словарь?Или, может быть, как объект с атрибутами?
Хорошее решение приведет к следующему:
@ex.automain
def run(config):
config.C # Option 1
config['C'] # Option 2