from train_test import test
class Trainer():
def __init__(self, method, data_unlabeled, subset, labeled_set, cycle, args):
self.method = method
self.data_unlabeled = data_unlabeled
self.subset = subset
self.labeled_set = labeled_set
self.cycle = cycle
self.args = args
def query_samples(self, method, data_unlabeled, subset, labeled_set, cycle, args, param):
..........
optimizer_target = getattr(optim, param['optimizer'])(net.parameters(), lr =
param['learning_rate'])
self.query= query_samples
@classmethod
def objective(self,train):
params = {}
model = Trainer()
model = model.query(params)
accuracy = model.test(trial)
return accuracy
if __name__ == '__main__':
study = optuna.create_study(direction="maximize")
study.optimize(lambda trial: Trainer.objective(trial))
init__() missing 6 required positional arguments: ‘method’, ‘data_unlabeled’, ‘subset’, ‘labeled_set’, ‘cycle’, and ‘args’
how to pass these arguments in Trainer class and then call query_samples or query()
If I take out the objective() from Trainer class, I am unable to call the objective function in my main() because of self
File “main.py”, line 94, study.optimize(lambda trial: objective(trial)) TypeError: objective() missing 1 required positional argument: ‘trial’