4

我正在尝试sacred为 Python进行设置,并且正在阅读教程。我能够毫无问题地设置神圣使用pip install sacred。我在运行基本代码时遇到问题:

from sacred import Experiment

ex = Experiment("hello_world")

运行此代码将返回 a ValueError

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-25-66f549cfb192> in <module>()
      1 from sacred import Experiment
      2 
----> 3 ex = Experiment("hello_world")

/Users/ryandevera/anaconda/lib/python2.7/site-packages/sacred/experiment.pyc in __init__(self, name, ingredients)
     42         super(Experiment, self).__init__(path=name,
     43                                          ingredients=ingredients,
---> 44                                          _caller_globals=caller_globals)
     45         self.default_command = ""
     46         self.command(print_config, unobserved=True)

/Users/ryandevera/anaconda/lib/python2.7/site-packages/sacred/ingredient.pyc in __init__(self, path, ingredients, _caller_globals)
     48         self.doc = _caller_globals.get('__doc__', "")
     49         self.sources, self.dependencies = \
---> 50             gather_sources_and_dependencies(_caller_globals)
     51 
     52     # =========================== Decorators ==================================

/Users/ryandevera/anaconda/lib/python2.7/site-packages/sacred/dependencies.pyc in gather_sources_and_dependencies(globs)
    204 def gather_sources_and_dependencies(globs):
    205     dependencies = set()
--> 206     main = Source.create(globs.get('__file__'))
    207     sources = {main}
    208     experiment_path = os.path.dirname(main.filename)

/Users/ryandevera/anaconda/lib/python2.7/site-packages/sacred/dependencies.pyc in create(filename)
     61         if not filename or not os.path.exists(filename):
     62             raise ValueError('invalid filename or file not found "{}"'
---> 63                              .format(filename))
     64 
     65         mainfile = get_py_file_if_possible(os.path.abspath(filename))

ValueError: invalid filename or file not found "None"

我不确定为什么会返回此错误。该文档没有说明在运行代码之前设置实验文件的任何内容。任何帮助将不胜感激!

4

3 回答 3

3

给出的回溯表明构造函数Experiment搜索其名称空间以查找其定义的文件。

因此,要使示例工作,请将示例代码放入一个文件并直接运行该文件。

如果您正在使用ipython,那么您可以随时尝试使用该%%python命令,该命令将在运行之前有效地将您提供的代码捕获到文件中(在单独的 python 进程中)。

于 2016-03-30T00:46:50.363 回答
3

根据文档,如果您使用的是 IPython/Jupyter,则可以允许实验在不可重现的交互式环境中运行:

ex = Experiment('jupyter_ex', interactive=True)

https://sacred.readthedocs.io/en/latest/experiment.html#run-the-experiment

于 2016-12-02T05:47:33.907 回答
2

文档说得很好(TL; DR:神圣为您检查并失败以警告您)

警告

默认情况下,如果在 REPL 或 Jupyter Notebook 等交互式环境中运行,Sacred 实验将失败。这是一种预期的安全措施,因为在这些环境中无法确保再现性。如果需要,可以通过 interactive=True像这样传递给实验来停用此保护措施:

ex = Experiment('jupyter_ex', interactive=True)
于 2018-03-04T11:25:59.837 回答