首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象的递归实例化. hydra

对象的递归实例化. hydra
EN

Stack Overflow用户
提问于 2021-08-12 07:22:27
回答 1查看 787关注 0票数 1

我在试着实例化一个变压器的组合。

在本机Python中,如下所示:

代码语言:javascript
复制
import albumentations as A
transforms = A.Compose([
   A.Rotate(limit=10), 
    A.ToGray(p=1),
])
print(transforms)

产出:

代码语言:javascript
复制
Compose([
  Rotate(always_apply=False, p=0.5, limit=(-10, 10), interpolation=1, border_mode=4, value=None, mask_value=None),
  ToGray(always_apply=False, p=1),
], p=1.0, bbox_params=None, keypoint_params=None, additional_targets={})

我试图用Hydra实例化相同的转换,但由于某种原因,递归实例化失败了,只有转换列表被实例化,但没有实例化外部(A.Compose)函数。

代码语言:javascript
复制
from omegaconf import OmegaConf
import hydra
conf = OmegaConf.create({"compose": {"_traget_": "albumentations.Compose", "_recursive_": True, "transforms": [{"_target_": "albumentations.Rotate", "limit": 10}, {"_target_": "albumentations.ToGray", "p": 1}]}})
print(OmegaConf.to_yaml(conf))

产出:

代码语言:javascript
复制
compose:
  _traget_: albumentations.Compose
  _recursive_: true
  transforms:
  - _target_: albumentations.Rotate
    limit: 10
  - _target_: albumentations.ToGray
    p: 1

但是实例化失败:

代码语言:javascript
复制
print(hydra.utils.instantiate(conf.compose))

产出:

代码语言:javascript
复制
{'_traget_': 'albumentations.Compose', 'transforms': [Rotate(always_apply=False, p=0.5, limit=(-10, 10), interpolation=1, border_mode=4, value=None, mask_value=None), ToGray(always_apply=False, p=1)]}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-12 15:48:26

  1. 此代码不运行在Hydera1.1上,并导致以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "1.py", line 30, in <module>
    print(hydra.utils.instantiate(conf.compose))
  File "/home/omry/dev/hydra/hydra/utils.py", line 95, in instantiate
    target = _get_target_type(config, kwargs)
  File "/home/omry/dev/hydra/hydra/_internal/utils.py", line 640, in _get_target_type
    raise InstantiationException("Unable to determine target")

原因是您的第一个节点没有_target_字段,而是有一个_traget_。一旦你纠正了这个问题,它就可以正常工作了。

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

https://stackoverflow.com/questions/68753202

复制
相关文章

相似问题

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