亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lbfgs.java

?? dragontoolkit用于機器學習
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
                {                    if ( iter > m ) bound = m;                    ys = ddot ( n , w , iypt + npt , 1 , w , ispt + npt , 1 );                    if ( ! diagco )                    {                        yy = ddot ( n , w , iypt + npt , 1 , w , iypt + npt , 1 );                        for ( i = 1 ; i <= n ; i += 1 )                        {                            diag [ i -1] = ys / yy;                        }                    }                    else                    {                        iflag[0]=2;                        return;                    }                }            }            if ( execute_entire_while_loop || iflag[0] == 2 )            {                if ( iter != 1 )                {                    if ( diagco )                    {                        for ( i = 1 ; i <= n ; i += 1 )                        {                            if ( diag [ i -1] <= 0 )                            {                                iflag[0]=-2;                                throw new ExceptionWithIflag( iflag[0], "The "+i+"-th diagonal element of the inverse hessian approximation is not positive." );                            }                        }                    }                    cp= point;                    if ( point == 0 ) cp = m;                    w [ n + cp -1] = 1 / ys;                    for ( i = 1 ; i <= n ; i += 1 )                    {                        w [ i -1] = - g [ i -1];                    }                    cp= point;                    for ( i = 1 ; i <= bound ; i += 1 )                    {                        cp=cp-1;                        if ( cp == - 1 ) cp = m - 1;                        sq = ddot ( n , w , ispt + cp * n , 1 , w , 0 , 1 );                        inmc=n+m+cp+1;                        iycn=iypt+cp*n;                        w [ inmc -1] = w [ n + cp + 1 -1] * sq;                        daxpy ( n , - w [ inmc -1] , w , iycn , 1 , w , 0 , 1 );                    }                    for ( i = 1 ; i <= n ; i += 1 )                    {                        w [ i -1] = diag [ i -1] * w [ i -1];                    }                    for ( i = 1 ; i <= bound ; i += 1 )                    {                        yr = ddot ( n , w , iypt + cp * n , 1 , w , 0 , 1 );                        beta = w [ n + cp + 1 -1] * yr;                        inmc=n+m+cp+1;                        beta = w [ inmc -1] - beta;                        iscn=ispt+cp*n;                        daxpy ( n , beta , w , iscn , 1 , w , 0 , 1 );                        cp=cp+1;                        if ( cp == m ) cp = 0;                    }                    for ( i = 1 ; i <= n ; i += 1 )                    {                        w [ ispt + point * n + i -1] = w [ i -1];                    }                }                nfev[0]=0;                stp[0]=1;                if ( iter == 1 ) stp[0] = stp1;                for ( i = 1 ; i <= n ; i += 1 )                {                    w [ i -1] = g [ i -1];                }            }            Mcsrch.mcsrch ( n , x , f , g , w , ispt + point * n , stp , ftol , xtol , maxfev , info , nfev , diag );            if ( info[0] == - 1 )            {                iflag[0]=1;                return;            }            if ( info[0] != 1 )            {                iflag[0]=-1;                throw new ExceptionWithIflag( iflag[0], "Line search failed. See documentation of routine mcsrch. Error return of line search: info = "+info[0]+" Possible causes: function or gradient are incorrect, or incorrect tolerances." );            }            nfun= nfun + nfev[0];            npt=point*n;            for ( i = 1 ; i <= n ; i += 1 )            {                w [ ispt + npt + i -1] = stp[0] * w [ ispt + npt + i -1];                w [ iypt + npt + i -1] = g [ i -1] - w [ i -1];            }            point=point+1;            if ( point == m ) point = 0;            gnorm = Math.sqrt ( ddot ( n , g , 0 , 1 , g , 0 , 1 ) );            xnorm = Math.sqrt ( ddot ( n , x , 0 , 1 , x , 0 , 1 ) );            xnorm = Math.max ( 1.0 , xnorm );            if ( gnorm / xnorm <= eps ) finish = true;            if ( iprint [ 1 -1] >= 0 ) lb1 ( iprint , iter , nfun , gnorm , n , m , x , f , g , stp , finish );            // Cache the current solution vector. Due to the spaghetti-like            // nature of this code, it's not possible to quit here and return;            // we need to go back to the top of the loop, and eventually call            // mcsrch one more time -- but that will modify the solution vector.            // So we need to keep a copy of the solution vector as it was at            // the completion (info[0]==1) of the most recent line search.            System.arraycopy( x, 0, solution_cache, 0, n );            if ( finish )            {                iflag[0]=0;                    return;            }            execute_entire_while_loop = true;		// from now on, execute whole loop        }    }    /** Print debugging and status messages for <code>lbfgs</code>.      * Depending on the parameter <code>iprint</code>, this can include      * number of function evaluations, current function value, etc.      * The messages are output to <code>System.err</code>.      *      * @param iprint Specifies output generated by <code>lbfgs</code>.<p>      *		<code>iprint[0]</code> specifies the frequency of the output:      *		<ul>      *		<li> <code>iprint[0] &lt; 0</code>: no output is generated,      *		<li> <code>iprint[0] = 0</code>: output only at first and last iteration,      *		<li> <code>iprint[0] &gt; 0</code>: output every <code>iprint[0]</code> iterations.      *		</ul><p>      *      *		<code>iprint[1]</code> specifies the type of output generated:      *		<ul>      *		<li> <code>iprint[1] = 0</code>: iteration count, number of function      *			evaluations, function value, norm of the gradient, and steplength,      *		<li> <code>iprint[1] = 1</code>: same as <code>iprint[1]=0</code>, plus vector of      *			variables and  gradient vector at the initial point,      *		<li> <code>iprint[1] = 2</code>: same as <code>iprint[1]=1</code>, plus vector of      *			variables,      *		<li> <code>iprint[1] = 3</code>: same as <code>iprint[1]=2</code>, plus gradient vector.      *		</ul>      * @param iter Number of iterations so far.      * @param nfun Number of function evaluations so far.      * @param gnorm Norm of gradient at current solution <code>x</code>.      * @param n Number of free parameters.      * @param m Number of corrections kept.      * @param x Current solution.      * @param f Function value at current solution.      * @param g Gradient at current solution <code>x</code>.      * @param stp Current stepsize.      * @param finish Whether this method should print the ``we're done'' message.      */    public static void lb1 ( int[] iprint , int iter , int nfun , double gnorm , int n , int m , double[] x , double f , double[] g , double[] stp , boolean finish )    {        int i;        if ( iter == 0 )        {            System.err.println( "*************************************************" );            System.err.println( "  n = " + n + "   number of corrections = " + m + "\n       initial values" );            System.err.println( " f =  " + f + "   gnorm =  " + gnorm );            if ( iprint [ 2 -1] >= 1 )            {                System.err.print( " vector x =" );                for ( i = 1; i <= n; i++ )                    System.err.print( "  "+x[i-1] );                System.err.println( "" );                System.err.print( " gradient vector g =" );                for ( i = 1; i <= n; i++ )                    System.err.print( "  "+g[i-1] );                System.err.println( "" );            }            System.err.println( "*************************************************" );            System.err.println( "\ti\tnfn\tfunc\tgnorm\tsteplength" );        }        else        {            if ( ( iprint [ 1 -1] == 0 ) && ( iter != 1 && ! finish ) ) return;            if ( iprint [ 1 -1] != 0 )            {                if ( (iter - 1) % iprint [ 1 -1] == 0 || finish )                {                    if ( iprint [ 2 -1] > 1 && iter > 1 )                        System.err.println( "\ti\tnfn\tfunc\tgnorm\tsteplength" );                    System.err.println( "\t"+iter+"\t"+nfun+"\t"+f+"\t"+gnorm+"\t"+stp[0] );                }                else                {                    return;                }            }            else            {                if ( iprint [ 2 -1] > 1 && finish )                        System.err.println( "\ti\tnfn\tfunc\tgnorm\tsteplength" );                System.err.println( "\t"+iter+"\t"+nfun+"\t"+f+"\t"+gnorm+"\t"+stp[0] );            }            if ( iprint [ 2 -1] == 2 || iprint [ 2 -1] == 3 )            {                if ( finish )                {                    System.err.print( " final point x =" );                }                else                {                    System.err.print( " vector x =  " );                }                for ( i = 1; i <= n; i++ )                    System.err.print( "  "+x[i-1] );                System.err.println( "" );                if ( iprint [ 2 -1] == 3 )                {                    System.err.print( " gradient vector g =" );                    for ( i = 1; i <= n; i++ )                        System.err.print( "  "+g[i-1] );                    System.err.println( "" );                }            }            if ( finish )                System.err.println( " The minimization terminated without detecting errors. iflag = 0" );        }        return;    }    /** Compute the sum of a vector times a scalara plus another vector.      * Adapted from the subroutine <code>daxpy</code> in <code>lbfgs.f</code>.      * There could well be faster ways to carry out this operation; this      * code is a straight translation from the Fortran.      */    public static void daxpy ( int n , double da , double[] dx , int ix0, int incx , double[] dy , int iy0, int incy )    {        int i, ix, iy, m, mp1;        if ( n <= 0 ) return;        if ( da == 0 ) return;        if  ( ! ( incx == 1 && incy == 1 ) )        {            ix = 1;            iy = 1;            if ( incx < 0 ) ix = ( - n + 1 ) * incx + 1;            if ( incy < 0 ) iy = ( - n + 1 ) * incy + 1;            for ( i = 1 ; i <= n ; i += 1 )            {                dy [ iy0+iy -1] = dy [ iy0+iy -1] + da * dx [ ix0+ix -1];                ix = ix + incx;                iy = iy + incy;            }            return;        }        m = n % 4;        if ( m != 0 )        {            for ( i = 1 ; i <= m ; i += 1 )            {                dy [ iy0+i -1] = dy [ iy0+i -1] + da * dx [ ix0+i -1];            }            if ( n < 4 ) return;        }        mp1 = m + 1;        for ( i = mp1 ; i <= n ; i += 4 )        {            dy [ iy0+i -1] = dy [ iy0+i -1] + da * dx [ ix0+i -1];            dy [ iy0+i + 1 -1] = dy [ iy0+i + 1 -1] + da * dx [ ix0+i + 1 -1];            dy [ iy0+i + 2 -1] = dy [ iy0+i + 2 -1] + da * dx [ ix0+i + 2 -1];            dy [ iy0+i + 3 -1] = dy [ iy0+i + 3 -1] + da * dx [ ix0+i + 3 -1];        }        return;    }    /** Compute the dot product of two vectors.      * Adapted from the subroutine <code>ddot</code> in <code>lbfgs.f</code>.      * There could well be faster ways to carry out this operation; this      * code is a straight translation from the Fortran.      */    public static double ddot ( int n, double[] dx, int ix0, int incx, double[] dy, int iy0, int incy )    {        double dtemp;        int i, ix, iy, m, mp1;        dtemp = 0;        if ( n <= 0 ) return 0;        if ( !( incx == 1 && incy == 1 ) )        {            ix = 1;            iy = 1;            if ( incx < 0 ) ix = ( - n + 1 ) * incx + 1;            if ( incy < 0 ) iy = ( - n + 1 ) * incy + 1;            for ( i = 1 ; i <= n ; i += 1 )            {                dtemp = dtemp + dx [ ix0+ix -1] * dy [ iy0+iy -1];                ix = ix + incx;                iy = iy + incy;            }            return dtemp;        }        m = n % 5;        if ( m != 0 )        {            for ( i = 1 ; i <= m ; i += 1 )            {                dtemp = dtemp + dx [ ix0+i -1] * dy [ iy0+i -1];            }            if ( n < 5 ) return dtemp;        }        mp1 = m + 1;        for ( i = mp1 ; i <= n ; i += 5 )        {            dtemp = dtemp + dx [ ix0+i -1] * dy [ iy0+i -1] + dx [ ix0+i + 1 -1] * dy [ iy0+i + 1 -1] + dx [ ix0+i + 2 -1] * dy [ iy0+i + 2 -1] + dx [ ix0+i + 3 -1] * dy [ iy0+i + 3 -1] + dx [ ix0+i + 4 -1] * dy [ iy0+i + 4 -1];        }        return dtemp;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩电影| 国产欧美精品一区二区色综合| 亚洲综合另类小说| 欧美综合在线视频| 亚洲第一精品在线| 欧美一级片在线观看| 紧缚奴在线一区二区三区| 精品国产一区二区三区av性色| 久热成人在线视频| 久久免费美女视频| 丰满岳乱妇一区二区三区| 亚洲日本青草视频在线怡红院| 日本久久电影网| 日欧美一区二区| 精品国产一区久久| 波多野结衣一区二区三区| 亚洲综合999| 欧美va天堂va视频va在线| 国产ts人妖一区二区| 樱桃国产成人精品视频| 欧美另类高清zo欧美| 狠狠色丁香九九婷婷综合五月| 国产欧美精品国产国产专区| 色综合婷婷久久| 日本视频中文字幕一区二区三区| 久久人人97超碰com| 日本精品裸体写真集在线观看 | 毛片一区二区三区| 久久亚洲精品国产精品紫薇| 99久久久免费精品国产一区二区| 午夜日韩在线电影| 久久精品亚洲精品国产欧美kt∨ | 日韩精品五月天| 国产欧美日韩中文久久| 色综合一个色综合亚洲| 久久99精品久久久| 国产精品美女久久福利网站| 91精品国产综合久久婷婷香蕉| 国产成人免费视频网站| 夜夜精品视频一区二区| 久久久亚洲欧洲日产国码αv| 色婷婷亚洲综合| 国产一区二三区| 亚洲一区二区三区美女| 中文字幕第一页久久| 在线不卡中文字幕播放| 成人午夜av影视| 麻豆国产精品777777在线| 一区免费观看视频| 久久综合色一综合色88| 欧美伦理影视网| 9人人澡人人爽人人精品| 国模无码大尺度一区二区三区| 亚洲一区视频在线| 日本一区二区三区久久久久久久久不 | 午夜欧美大尺度福利影院在线看| 中文字幕第一区综合| 精品国产91九色蝌蚪| 欧美乱妇一区二区三区不卡视频| 色综合天天综合网国产成人综合天| 国产伦精品一区二区三区视频青涩 | 青青草91视频| 亚洲午夜免费电影| 136国产福利精品导航| 国产三级欧美三级日产三级99 | 91福利国产精品| 99久久综合国产精品| 国产资源精品在线观看| 日本不卡一二三区黄网| 亚洲成va人在线观看| 亚洲综合色成人| 亚洲欧洲性图库| 中文字幕不卡在线观看| 国产欧美日本一区视频| 国产欧美中文在线| 欧美国产综合一区二区| 国产精品入口麻豆原神| 国产蜜臀97一区二区三区 | 中文字幕一区二区不卡| 久久精品一区二区三区不卡| 久久久不卡网国产精品二区| 久久久久99精品一区| 久久久精品黄色| 欧美激情在线一区二区三区| 中文字幕免费一区| 一区二区中文字幕在线| 亚洲精品国产高清久久伦理二区| 亚洲美女淫视频| 一区二区久久久| 丝袜诱惑制服诱惑色一区在线观看 | 宅男噜噜噜66一区二区66| 欧美巨大另类极品videosbest | 日韩精品国产欧美| 日韩av中文字幕一区二区 | 亚洲精品国产高清久久伦理二区| 亚洲午夜在线电影| 日韩精品一二三区| 免费观看91视频大全| 国产精品中文欧美| av一二三不卡影片| 欧美私模裸体表演在线观看| 8v天堂国产在线一区二区| 久久综合九色综合欧美亚洲| 国产蜜臀97一区二区三区| 亚洲激情五月婷婷| 蜜桃av一区二区| 丁香亚洲综合激情啪啪综合| www.亚洲激情.com| 欧美久久久久久久久久| 久久久久久久性| 亚洲一区二区美女| 久久99国产精品成人| 成人app网站| 欧美美女视频在线观看| 国产日韩欧美麻豆| 亚洲夂夂婷婷色拍ww47| 久久国产精品99精品国产| 不卡一区二区三区四区| 91精品一区二区三区久久久久久 | 欧美日韩激情一区| 久久久亚洲高清| 亚洲一区二区三区在线| 国产自产高清不卡| 欧美自拍偷拍午夜视频| 精品国产网站在线观看| 亚洲欧美日本韩国| 国产在线精品免费| 欧美日韩精品欧美日韩精品一| 国产无人区一区二区三区| 丝袜美腿亚洲一区| 99视频国产精品| 亚洲精品一区二区三区福利| 亚洲一区二区视频在线观看| 国产精品99久久久久久似苏梦涵| 欧美视频在线一区| 国产精品久久久久久久久动漫| 日韩在线观看一区二区| 91伊人久久大香线蕉| 久久亚洲精品国产精品紫薇| 日韩黄色免费网站| 在线精品国精品国产尤物884a| 国产日韩欧美精品综合| 久久疯狂做爰流白浆xx| 欧美日韩国产系列| 亚洲美女视频在线观看| 国v精品久久久网| 精品国产乱码久久久久久影片| 亚洲一区在线电影| 色呦呦国产精品| 中文乱码免费一区二区| 国产一区二区影院| 欧美v日韩v国产v| 日本亚洲欧美天堂免费| 欧美日韩亚洲丝袜制服| 亚洲精品国产第一综合99久久 | 一区二区三区中文字幕精品精品| 国产精品66部| 久久精品男人天堂av| 奇米精品一区二区三区四区| 欧美日韩一区二区三区高清 | 久久精品无码一区二区三区| 捆绑变态av一区二区三区| 777久久久精品| 亚洲不卡一区二区三区| 欧美主播一区二区三区| 一区二区三区美女视频| 91社区在线播放| 中文字幕亚洲欧美在线不卡| 99精品在线观看视频| 国产精品高清亚洲| 不卡欧美aaaaa| 一区二区中文字幕在线| 色综合中文字幕| 亚洲一区二区三区激情| 欧美丰满少妇xxxxx高潮对白| 日韩在线一区二区| 日韩欧美精品在线视频| 精品一区二区三区久久久| 久久综合丝袜日本网| 国产99久久久国产精品潘金| 中文字幕在线播放不卡一区| 99re视频这里只有精品| 亚洲黄色av一区| 欧美日本精品一区二区三区| 日本不卡视频在线| 精品国产sm最大网站| 成人性生交大片免费| 亚洲激情五月婷婷| 欧美日韩不卡一区二区| 蜜桃久久av一区| 国产欧美日韩中文久久| 91欧美激情一区二区三区成人| 亚洲国产精品久久久久秋霞影院| 欧美一区二区二区| 国产精品一区二区x88av| 亚洲日本电影在线| 欧美精品 日韩| 风流少妇一区二区| 亚洲va天堂va国产va久| 久久婷婷色综合|