首页 > 解决方案 > Optuna 返回最后一个值,而不是一次试验的最佳值

问题描述

我正在使用 Optuna。想象一下这些是“5 个时期或步骤”的“1 次试验”的值:

纪元 0:18 - 纪元 1:32 - 纪元 2:14 - 纪元 3:28 - 纪元 4:25

我希望 Optuna 返回 14 作为此试验的值,但它给了我 25(最后一个 epoch 的值)。我希望 optuna 返回最佳中间值作为最终值,而不是最后一个。任何解释,以及解决问题的解决方案,将不胜感激。

Ps:我说的只是一个试验,而不是一项研究。

标签: optuna

解决方案


如何将所有中间值保存在列表中并从中获取最大值/最小值?

以下是这种方法的伪代码:

def objective(trial):
    ...
    accuracies = []
    for i in range(N_ITERATIONS):
        accuracy = n_correct / N_VALID_EXAMPLES
        accuracies.append(accuracy)
    return max(accuracies)

您可以在此笔记本中找到一个工作示例。


推荐阅读