SELECT
a.*
FROM (
SELECT
b_id
FROM
c
ORDER BY is_agreed DESC, b_id DESC
LIMIT 1
) c
JOIN b ON c.b_id = b.id
JOIN a ON b.a_id = a.id
的{{1}}函数与sklearn
一起使用是一种很好的“一刀切”的解决方案。您只需调用一次,它就会进行训练,直到达到最大迭代次数或训练损失平稳,所有这些都无需任何交互。但是,我不得不更改代码以适应其他一些功能,并且标准fit
函数的配置不足以实现我想做的事情。我将代码重新配置为使用MLPClassifier
,每次手动运行一次迭代。但是我无法弄清楚如何使代码能够识别出损失何时达到平稳状态,就像fit
函数中那样。我似乎找不到partial_fit
的任何属性或方法,无法访问由fit
计算的损失值,因此我可以判断损失是否已达到平稳状态。在我看来,判断MLPClassifier
已经计算出它并甚至以详细模式将其打印到控制台的事实,判断每次迭代中的损耗的唯一方法就是自己计算它。
编辑:手动运行partial_fit
仍会导致训练算法识别出训练损失停止改善的时间;一旦训练损失停滞,它将在每次迭代后打印消息partial_fit
。但是,由于我是手动控制迭代,因此实际上并没有停止,并且我无法在代码中确定是否已打印此消息以手动停止它。
答案 0 :(得分:0)
我建议手动将损失记录在列表中
loss_list = list()
clf = MLPClassifier()
#partial fit and so on
print(clf.loss_)
loss_list.append(clf.loss_)
如果此代码有帮助,我可以为您提供停止条件。