首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >含水力成分的值插值

含水力成分的值插值
EN

Stack Overflow用户
提问于 2021-01-03 17:11:23
回答 1查看 2.8K关注 0票数 1

我使用以下结构的水龙头组合物:

代码语言:javascript
运行
复制
├── configs
    │   ├── config.yaml
    │   ├── data
    │   │   ├── dataset_01.yaml
    │   │   └── dataset_02.yaml
    │   └── model
    │       ├── bert.yaml
    │       └── gpt.yaml
  • config.yaml
代码语言:javascript
运行
复制
defaults:
  - model: bert
  - data: dataset_01

...
  • 数据/数据集_01.yaml
代码语言:javascript
运行
复制
# @package _group_

name: "dataset_01"

train:
  path: "../resources/datasets/dataset_01/train.jsonl"
  num_samples: 1257391

test:
  path: "../resources/datasets/dataset_01/test.jsonl"
  num_samples: 71892

val:
  path: "../resources/datasets/dataset_01/val.jsonl"
  num_samples: 73805
  • 模型/bert.yaml
代码语言:javascript
运行
复制
# @package _group_

name: "bert"

encoder: "source.encoder.BertEncoder.BertEncoder"

encoder_hparams:
  architecture: "bert-base-uncased"

lr: 1e-7

tokenizer:
  architecture: "bert-base-uncased"

predictions:
  path: "../resources/predictions/bert_predictions.pt"
  • 入口点
代码语言:javascript
运行
复制
@hydra.main(config_path="configs/", config_name="config.yaml")
def perform_tasks(hparams):

    model = MyModel(hparams.model)

if __name__ == '__main__':
    perform_tasks()

hparams.model上下文中,OmegaConf无法插值键data.name,因为它不在作用域内。所以,如果有一种方法在应用程序开始时引起插值,那就太好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-03 23:48:38

OmegaConf内插是绝对的,并且是在最后配置上操作的。

试试这个:

九头蛇1.0 (稳定)

代码语言:javascript
运行
复制
predictions:
  path: "../resources/predictions/bert_${data.name}_predictions.pt"

九头蛇1.1 (发展)

九头蛇1.1将消除在您的信任中指定名称的需要。您可以在不使用hydra:choices.GROUP_NAME添加name字段的情况下进行内插。

代码语言:javascript
运行
复制
predictions:
  path: "../resources/predictions/bert_${hydra:choices.data}_predictions.pt"

这是记录在案的这里。请注意,这只在Hydra 1.1中可用,它尚未正式发布(您可以通过安装dev版本来试用它)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65552653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档