Finding Optimal layers of model using optuna

I am training DONUT model using seq2seq trainer. like where we pass training_args, trainer = {model=model, datatset = data,…}, trainer.train().
objective : I want to find the optimal number of encoder layers and decoder layers for my task.

Can we find optimal layers using optuna or anyother method?