本文整理汇总了C++中FVector::scale方法的典型用法代码示例。如果您正苦于以下问题:C++ FVector::scale方法的具体用法?C++ FVector::scale怎么用?C++ FVector::scale使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FVector
的用法示例。
在下文中一共展示了FVector::scale方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
/// Renormalize the weights
void
SvmSgd::renorm()
{
if (wDivisor != 1.0)
{
w.scale(1.0 / wDivisor);
wDivisor = 1.0;
}
}
示例2: if
/// Renormalize the weights
void
SvmSag::renorm()
{
if (wb != 0)
w.combine(wa, g, wb);
else if (wa != 1)
w.scale(wa);
wa = 1;
wb = 0;
}
示例3:
/// Renormalize the weights
void
SvmAisgd::renorm()
{
if (wDivisor != 1.0 || aDivisor != 1.0 || wFraction != 0)
{
a.combine(1/aDivisor, w, wFraction/aDivisor);
w.scale(1/wDivisor);
wDivisor = aDivisor = 1;
wFraction = 0;
}
}
示例4: assert
void
SvmSgd::train(int imin, int imax,
const xvec_t &xp, const yvec_t &yp,
const char *prefix)
{
cout << prefix << "Training on [" << imin << ", " << imax << "]." << endl;
assert(imin <= imax);
count = skip;
for (int i=imin; i<=imax; i++)
{
const SVector &x = xp.at(i);
double y = yp.at(i);
double wx = dot(w,x);
double z = y * (wx + bias);
double eta = 1.0 / (lambda * t);
#if LOSS < LOGLOSS
if (z < 1)
#endif
{
double etd = eta * dloss(z);
w.add(x, etd * y);
#if BIAS
#if REGULARIZEBIAS
bias *= 1 - eta * lambda * bscale;
#endif
bias += etd * y * bscale;
#endif
}
if (--count <= 0)
{
double r = 1 - eta * lambda * skip;
if (r < 0.8)
r = pow(1 - eta * lambda, skip);
w.scale(r);
count = skip;
}
t += 1;
}
cout << prefix << setprecision(6)
<< "Norm: " << dot(w,w) << ", Bias: " << bias << endl;
}