⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trainlm.c

📁 nnToolKit 神经网络工具包是基于 MATLAB 神经网络工具箱自行开发的一组神经网络算法函数库
💻 C
📖 第 1 页 / 共 5 页
字号:
    /*
     * end
     */
    }
    /*
     * 
     * % CALCULATION
     * % ===========
     * 
     * % Parameters
     * epochs = net.trainParam.epochs;
     */
    mlfAssign(&epochs, mlfIndexRef(mclVa(net, "net"), ".trainParam.epochs"));
    /*
     * goal = net.trainParam.goal;
     */
    mlfAssign(&goal, mlfIndexRef(mclVa(net, "net"), ".trainParam.goal"));
    /*
     * max_fail = net.trainParam.max_fail;
     */
    mlfAssign(
      &max_fail, mlfIndexRef(mclVa(net, "net"), ".trainParam.max_fail"));
    /*
     * mem_reduc = net.trainParam.mem_reduc;
     */
    mlfAssign(
      &mem_reduc, mlfIndexRef(mclVa(net, "net"), ".trainParam.mem_reduc"));
    /*
     * min_grad = net.trainParam.min_grad;
     */
    mlfAssign(
      &min_grad, mlfIndexRef(mclVa(net, "net"), ".trainParam.min_grad"));
    /*
     * mu = net.trainParam.mu;
     */
    mlfAssign(&mu, mlfIndexRef(mclVa(net, "net"), ".trainParam.mu"));
    /*
     * mu_inc = net.trainParam.mu_inc;
     */
    mlfAssign(&mu_inc, mlfIndexRef(mclVa(net, "net"), ".trainParam.mu_inc"));
    /*
     * mu_dec = net.trainParam.mu_dec;
     */
    mlfAssign(&mu_dec, mlfIndexRef(mclVa(net, "net"), ".trainParam.mu_dec"));
    /*
     * mu_max = net.trainParam.mu_max;
     */
    mlfAssign(&mu_max, mlfIndexRef(mclVa(net, "net"), ".trainParam.mu_max"));
    /*
     * show = net.trainParam.show;
     */
    mlfAssign(&show, mlfIndexRef(mclVa(net, "net"), ".trainParam.show"));
    /*
     * time = net.trainParam.time;
     */
    mlfAssign(&time, mlfIndexRef(mclVa(net, "net"), ".trainParam.time"));
    /*
     * 
     * % Parameter Checking
     * if (~isa(epochs,'double')) | (~isreal(epochs)) | (any(size(epochs)) ~= 1) | ...
     */
    {
        mxArray * a_
          = mclInitialize(
              mclNot(mlfIsa(mclVv(epochs, "epochs"), _mxarray32_)));
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_, mclOr(a_, mclNot(mlfIsreal(mclVv(epochs, "epochs")))));
        }
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_,
              mclOr(
                a_,
                mclNe(
                  mlfAny(
                    mlfSize(mclValueVarargout(), mclVv(epochs, "epochs"), NULL),
                    NULL),
                  _mxarray20_)));
        }
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_, mclOr(a_, mclLt(mclVv(epochs, "epochs"), _mxarray20_)));
        }
        if (mlfTobool(a_)
            || mlfTobool(
                 mclOr(
                   a_,
                   mclNe(
                     mlfRound(mclVv(epochs, "epochs")),
                     mclVv(epochs, "epochs"))))) {
            mxDestroyArray(a_);
            /*
             * (epochs < 1) | (round(epochs) ~= epochs)
             * error('Epochs is not a positive integer.')
             */
            mlfError(_mxarray30_, NULL);
        } else {
            mxDestroyArray(a_);
        }
    /*
     * end
     */
    }
    /*
     * if (~isa(goal,'double')) | (~isreal(goal)) | (any(size(goal)) ~= 1) | ...
     */
    {
        mxArray * a_
          = mclInitialize(mclNot(mlfIsa(mclVv(goal, "goal"), _mxarray32_)));
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(&a_, mclOr(a_, mclNot(mlfIsreal(mclVv(goal, "goal")))));
        }
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_,
              mclOr(
                a_,
                mclNe(
                  mlfAny(
                    mlfSize(mclValueVarargout(), mclVv(goal, "goal"), NULL),
                    NULL),
                  _mxarray20_)));
        }
        if (mlfTobool(a_)
            || mlfTobool(mclOr(a_, mclLt(mclVv(goal, "goal"), _mxarray19_)))) {
            mxDestroyArray(a_);
            /*
             * (goal < 0)
             * error('Goal is not zero or a positive real value.')
             */
            mlfError(_mxarray34_, NULL);
        } else {
            mxDestroyArray(a_);
        }
    /*
     * end
     */
    }
    /*
     * if (~isa(max_fail,'double')) | (~isreal(max_fail)) | (any(size(max_fail)) ~= 1) | ...
     */
    {
        mxArray * a_
          = mclInitialize(
              mclNot(mlfIsa(mclVv(max_fail, "max_fail"), _mxarray32_)));
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_, mclOr(a_, mclNot(mlfIsreal(mclVv(max_fail, "max_fail")))));
        }
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_,
              mclOr(
                a_,
                mclNe(
                  mlfAny(
                    mlfSize(
                      mclValueVarargout(), mclVv(max_fail, "max_fail"), NULL),
                    NULL),
                  _mxarray20_)));
        }
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_, mclOr(a_, mclLt(mclVv(max_fail, "max_fail"), _mxarray20_)));
        }
        if (mlfTobool(a_)
            || mlfTobool(
                 mclOr(
                   a_,
                   mclNe(
                     mlfRound(mclVv(max_fail, "max_fail")),
                     mclVv(max_fail, "max_fail"))))) {
            mxDestroyArray(a_);
            /*
             * (max_fail < 1) | (round(max_fail) ~= max_fail)
             * error('Max_fail is not a positive integer.')
             */
            mlfError(_mxarray36_, NULL);
        } else {
            mxDestroyArray(a_);
        }
    /*
     * end
     */
    }
    /*
     * if (~isa(mem_reduc,'double')) | (~isreal(mem_reduc)) | (any(size(mem_reduc)) ~= 1) | ...
     */
    {
        mxArray * a_
          = mclInitialize(
              mclNot(mlfIsa(mclVv(mem_reduc, "mem_reduc"), _mxarray32_)));
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_, mclOr(a_, mclNot(mlfIsreal(mclVv(mem_reduc, "mem_reduc")))));
        }
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_,
              mclOr(
                a_,
                mclNe(
                  mlfAny(
                    mlfSize(
                      mclValueVarargout(), mclVv(mem_reduc, "mem_reduc"), NULL),
                    NULL),
                  _mxarray20_)));
        }
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_,
              mclOr(a_, mclLt(mclVv(mem_reduc, "mem_reduc"), _mxarray20_)));
        }
        if (mlfTobool(a_)
            || mlfTobool(
                 mclOr(
                   a_,
                   mclNe(
                     mlfRound(mclVv(mem_reduc, "mem_reduc")),
                     mclVv(mem_reduc, "mem_reduc"))))) {
            mxDestroyArray(a_);
            /*
             * (mem_reduc < 1) | (round(mem_reduc) ~= mem_reduc)
             * error('Mem_reduc is not a positive integer.')
             */
            mlfError(_mxarray38_, NULL);
        } else {
            mxDestroyArray(a_);
        }
    /*
     * end
     */
    }
    /*
     * if (~isa(min_grad,'double')) | (~isreal(min_grad)) | (any(size(min_grad)) ~= 1) | ...
     */
    {
        mxArray * a_
          = mclInitialize(
              mclNot(mlfIsa(mclVv(min_grad, "min_grad"), _mxarray32_)));
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_, mclOr(a_, mclNot(mlfIsreal(mclVv(min_grad, "min_grad")))));
        }
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_,
              mclOr(
                a_,
                mclNe(
                  mlfAny(
                    mlfSize(
                      mclValueVarargout(), mclVv(min_grad, "min_grad"), NULL),
                    NULL),
                  _mxarray20_)));
        }
        if (mlfTobool(a_)
            || mlfTobool(
                 mclOr(a_, mclLt(mclVv(min_grad, "min_grad"), _mxarray19_)))) {
            mxDestroyArray(a_);
            /*
             * (min_grad < 0)
             * error('Min_grad is not zero or a positive real value.')
             */
            mlfError(_mxarray40_, NULL);
        } else {
            mxDestroyArray(a_);
        }
    /*
     * end
     */
    }
    /*
     * if (~isa(mu,'double')) | (~isreal(mu)) | (any(size(mu)) ~= 1) | ...
     */
    {
        mxArray * a_
          = mclInitialize(mclNot(mlfIsa(mclVv(mu, "mu"), _mxarray32_)));
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(&a_, mclOr(a_, mclNot(mlfIsreal(mclVv(mu, "mu")))));
        }
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_,
              mclOr(
                a_,
                mclNe(
                  mlfAny(
                    mlfSize(mclValueVarargout(), mclVv(mu, "mu"), NULL), NULL),
                  _mxarray20_)));
        }
        if (mlfTobool(a_)
            || mlfTobool(mclOr(a_, mclLe(mclVv(mu, "mu"), _mxarray19_)))) {
            mxDestroyArray(a_);
            /*
             * (mu <= 0)
             * error('Mu is not a positive real value.')
             */
            mlfError(_mxarray42_, NULL);
        } else {
            mxDestroyArray(a_);
        }
    /*
     * end
     */
    }
    /*
     * if (~isa(mu_dec,'double')) | (~isreal(mu_dec)) | (any(size(mu_dec)) ~= 1) | ...
     */
    {
        mxArray * a_
          = mclInitialize(
              mclNot(mlfIsa(mclVv(mu_dec, "mu_dec"), _mxarray32_)));
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_, mclOr(a_, mclNot(mlfIsreal(mclVv(mu_dec, "mu_dec")))));
        }
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_,
              mclOr(
                a_,
                mclNe(
                  mlfAny(
                    mlfSize(mclValueVarargout(), mclVv(mu_dec, "mu_dec"), NULL),
                    NULL),
                  _mxarray20_)));
        }
        if (mlfTobool(a_)) {
            mlfAssign(&a_, mlfScalar(1));
        } else {
            mlfAssign(
              &a_, mclOr(a_, mclLt(mclVv(mu_dec, "mu_dec"), _mxarray19_)));
        }
        if (mlfTobool(a_)
            || mlfTobool(
                 mclOr(a_, mclGt(mclVv(mu_dec, "mu_dec"), _mxarray20_)))) {
            mxDestroyArray(a_);
            /*
             * (mu_dec < 0) | (mu_dec > 1)
             * error('Mu_dec is not a real value between 0 and 1.')
             */
            mlfError(_mxarray44_, NULL);
        } else {
            mxDestroyArray(a_);
        }
    /*
     * end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -