当前位置: 首页 > 工具软件 > sacred > 使用案例 >

深度学习工具之Sacred

费德宇
2023-12-01

介绍

Sacred是一个能够帮助你配置,组织,记录和重现实验的工具。它旨在完成我们需要围绕实验进行的所有繁琐的日常工作,以便:

  • 持续跟进我们实验的所有参数

  • 简单的进行不同设置的实验

  • 将单次运行的实验配置信息保存到数据库中

  • 重现我们的结果

Sacred实现这些通过下面的机制:

  • ConfigScopes:函数中局部变量定义实验所用参数的一种非常方便的方法。

  • Config Injection:可以从每个函数访问我们配置的所有参数。 它们会按名称自动注入。

  • Command-line interface:我们可以为每个实验获得一个强大的命令行接口,可以使用它来更改参数并运行不同的变体。

  • Observers:Sacred提供了一个Observers,它可以记录我们实验中的各种信息:实验的依赖项,使用到的配置信息,运行的机器信息以及实验结果。这些可以保存到MongoDB中,以便后续的访问。

  • Automatic seeding:帮助控制实验中的随机性,从而使结果保持可重复性。

样例

在iris数据集上训练SVM的脚本:

from numpy.random import permutation
from sklearn import svm, datasets

C = 1.0
gamma = 0.7

iris = datasets.load_iris()
perm = permutation(iris.target.size)
iris.data = iris.data[perm]
iris.target = iris.target[perm]
clf = svm.SVC(C, 'rbf', gamma=gamma)
clf.fit(iris.data[:90],
        iris.target[:90])
print(clf.score(iris.data[90:],
                iris.target[90:]))

用Sacred进行实验的脚本:

from numpy.random import permutation
from sklearn import svm, datasets
from sacred import Experiment
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:])

 

 类似资料: