virtual Type infereSigType (const vector<Type>& args) { assert (args.size() == arity()); interval i = args[0]->getInterval(); if (i.valid & i.lo>0) { return castInterval(floatCast(args[0]), interval(log(i.lo), log(i.hi))); } else { return floatCast(args[0]); } }
virtual Type infereSigType (const vector<Type>& args) { assert (args.size() == arity()); return floatCast(args[0]); }
ExponentialLearningRateFct(SdlFloat initialEta_ = floatCast(0.2), SdlFloat alpha_ = floatCast(0.85)) // recommended by Tsuruoka et al. (ACL 2009) : initialEta(initialEta_), alpha(alpha_), numUpdates(100) // make compiler happy by initializing {}
ConstantLearningRateFct(SdlFloat eta_ = floatCast(0.1)) : eta(eta_) {}
/** \param stepSize step size, this is what you should play with to speed up convergence \param numIters expected number of iterations (calls) */ NocedalLearningRateFct(SdlFloat stepSize_ = floatCast(0.5)) : stepSize(stepSize_) , alpha((SdlFloat)0.602) , length((SdlFloat)100) // make compiler happy by initializing {}
virtual Type infereSigType (const vector<Type>& args) { assert (args.size() == 1); return castInterval(floatCast(args[0]), interval(-1,1)); }