optuna - Optuna 返回最后一个值,而不是一次试验的最佳值
问题描述
我正在使用 Optuna。想象一下这些是“5 个时期或步骤”的“1 次试验”的值:
纪元 0:18 - 纪元 1:32 - 纪元 2:14 - 纪元 3:28 - 纪元 4:25
我希望 Optuna 返回 14 作为此试验的值,但它给了我 25(最后一个 epoch 的值)。我希望 optuna 返回最佳中间值作为最终值,而不是最后一个。任何解释,以及解决问题的解决方案,将不胜感激。
Ps:我说的只是一个试验,而不是一项研究。
解决方案
如何将所有中间值保存在列表中并从中获取最大值/最小值?
以下是这种方法的伪代码:
def objective(trial):
...
accuracies = []
for i in range(N_ITERATIONS):
accuracy = n_correct / N_VALID_EXAMPLES
accuracies.append(accuracy)
return max(accuracies)
您可以在此笔记本中找到一个工作示例。
推荐阅读
- android - 如何删除 TextInputLayout 可绘制填充?
- numpy - PIL图像到numpy数组没有复制
- c# - 使用 Microsoft.AspNetCore.Authentication.AzureADB2C.UI 时如何覆盖/替换错误页面处理?
- android - 反应导航动画切换页面过渡
- python - Flask:api errorhandler 执行了两次
- r - RShiny中侧边栏和主面板的固定位置
- html - Bootstrap 4:如何修复我的项目以占用所有空间,即使是内容较少的项目?
- python - 在有向加权图中找到访问每个节点的最短路径,对重新访问节点和边没有限制
- php - 使用php时如何确保字段中的字符长度/设置长度设置为特定数字?
- python - 使用命名空间实现多租户 (Python 3+)