【问题标题】:Optuna returns the last value, not the best one for one trialOptuna 返回最后一个值,而不是一次试验的最佳值
【发布时间】:2021-10-20 07:18:39
【问题描述】:

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

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

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

P.s:我说的只是一项试验,而不是一项研究。

【问题讨论】:

    标签: optuna


    【解决方案1】:

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

    以下是该方法的伪代码:

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

    您可以在 this notebook 中找到一个工作示例。

    【讨论】:

    • 感谢您的回复。我更改了代码,但我还有另一个问题。采样器会考虑“max(accuracies)”来采样新参数,对吗?但是修枝剪呢?
    猜你喜欢
    • 2017-02-09
    • 2021-07-12
    • 1970-01-01
    • 2021-09-11
    • 2021-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多