Hydra库的使用

1
hydra.utils.instantiate('_target_': 'torchmetrics.Accuracy')

该函数用于通过字符串来示例化一个对象。以此句话为例,其目的是为了实例化一个torchmetrics.Accuracy类。但实例化此类需要指定task参数,这个参数为’binary’, ‘multiclass’或是’multilabel’。参见下图:

直接执行该语句,效果相当于:
metrics = torchmetrics.Accuracy()
它将报出如下的错误:

其原因是,老版本的pytorch中的accuracy函数不需要指定task,然而新版本的由于更新,是需要格外指定一个’task’参数的。

修改后的metric初始化代码为:
metrics = torchmetrics.Accuracy(task="multiclass", num_classes=1000)

修改为用hydra实例化对象的写法为:

1
hydra.utils.instantiate('_target_': 'torchmetrics.Accuracy', 'task': "multiclass", 'num_classes': 1000)