test_yellowfin.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:tefla 作者: openAGI 项目源码 文件源码
def tuneEverything(self, x0squared, c, t, gmin, gmax):
        # First tune based on dynamic range
        if c == 0:
            dr = gmax / gmin
            mustar = ((np.sqrt(dr) - 1) / (np.sqrt(dr) + 1))**2
            alpha_star = (1 + np.sqrt(mustar))**2 / gmax

            return alpha_star, mustar

        dist_to_opt = x0squared
        grad_var = c
        max_curv = gmax
        min_curv = gmin
        const_fact = dist_to_opt * min_curv**2 / 2 / grad_var
        coef = [-1, 3, -(3 + const_fact), 1]
        roots = np.roots(coef)
        roots = roots[np.real(roots) > 0]
        roots = roots[np.real(roots) < 1]
        root = roots[np.argmin(np.imag(roots))]

        assert root > 0 and root < 1 and np.absolute(root.imag) < 1e-6

        dr = max_curv / min_curv
        assert max_curv >= min_curv
        mu = max(((np.sqrt(dr) - 1) / (np.sqrt(dr) + 1))**2, root**2)

        lr_min = (1 - np.sqrt(mu))**2 / min_curv

        alpha_star = lr_min
        mustar = mu

        return alpha_star, mustar
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号