gpt4 book ai didi

python - 神圣的,python - ex.config 在一个文件和 ex 中

转载 作者:行者123 更新时间:2023-11-30 22:24:33 24 4
gpt4 key购买 nike

所以我一直在研究神圣,它看起来很棒。不幸的是,我没有找到任何像我试图实现的多文件用例示例。

所以我有一个名为configuration.py的文件,它旨在包含不同的变量,这些变量将(使用神圣)插入到代码的其余部分(放置在不同的文件中):

from sacred import Experiment
ex = Experiment('Analysis')

@ex.config
def configure_analysis_default():
"""Initializes default """
generic_name = "C:\\basic_config.cfg" # configuration filename
message = "This is my generic name: %s!" % generic_name
print(message)

@ex.automain #automain function needs to be at the end of the file. Otherwise everything below it is not defined yet
# when the experiment is run.
def my_main(message):
print(message)

这本身就很有效。神圣正在按预期工作。但是,当我尝试引入第二个名为 Analysis.py 的文件时:

import configuration
from sacred import Experiment
ex = Experiment('Analysis')

@ex.capture
def what_is_love(generic_name):
message = " I don't know"
print(message)
print(generic_name)

@ex.automain
def my_main1():
what_is_love()

运行 Analysis.py 会产生:

错误:

TypeError: what_is_love is missing value(s) for ['generic_name']

我期望“导入配置”语句包含configuration.py文件,从而导入其中配置的所有内容,包括configure_analysis_default()及其装饰器@ex.config,然后将其注入(inject)到what_is_love(generic_name)。我究竟做错了什么?我该如何解决这个问题?

欣赏!

最佳答案

看起来我们应该使用成分来做这种事情。

http://sacred.readthedocs.io/en/latest/ingredients.html

但是我还没有完全弄清楚。

我在设置中遇到了循环导入问题,因此我使用一个单独的文件 exp.py,仅说明

from sacred import Experiment
ex = Experiment("default")

在我做的包中的每个文件中

从 exp 导入 ex

装饰器和配置变量传递似乎有效。我可以在命令行上使用 --name 更改实验的名称:

$> python main.py --name newname

关于python - 神圣的,python - ex.config 在一个文件和 ex 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47790619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com