【发布时间】:2022-01-27 07:28:28
【问题描述】:
class Trainer():
def __init__(self,param):
..........
optimizer_target = getattr(optim, param['optimizer'])(net.parameters(), lr = param['learning_rate'])
def train(epoch):
..........
def test(self, epoch):
..........
def objective(self,train):
params = {}
model = Trainer(params)
accuracy = model.test(trial)
return accuracy
if __name__ == '__main__':
study = optuna.create_study(direction="maximize")
study.optimize(objective)
当我在 main() 中调用这个目标函数时,它给了我不同的错误。不管我这样调用这个函数,它都会给我错误
study.optimize(lambda trial: Trainer.objective(trial))
如果我在没有类 Trainer 的情况下设计它,它会给我错误。请建议如何调用目标类的字典和在main()中调用目标函数
当前错误是
study.optimize(lambda 试验:Trainer.objective(试验)) 类型错误:objective() 缺少 1 个必需的位置参数:'trial'
【问题讨论】:
-
您也需要发布错误。可能有很多不同的问题。
-
study.optimize(lambda trial: Trainer.objective(trial)) 类型错误:objective() 缺少 1 个必需的位置参数:'trial'
-
请在您的问题中而不是在 cmets 部分中发布错误。
标签: python dictionary methods pytorch arguments