mirror of
https://github.com/davisking/dlib.git
synced 2024-11-01 10:14:53 +08:00
Fixed a bug which triggered when the last weight was forced to 1.
This commit is contained in:
parent
034eb0acc0
commit
f9805be856
@ -301,7 +301,7 @@ namespace dlib
|
|||||||
|
|
||||||
for (long i = new_idx; i < x.size(); ++i)
|
for (long i = new_idx; i < x.size(); ++i)
|
||||||
{
|
{
|
||||||
Q.push_back(dlib::dot(x(i),x(i)));
|
Q.push_back(length_squared(x(i)));
|
||||||
|
|
||||||
if (have_bias)
|
if (have_bias)
|
||||||
{
|
{
|
||||||
@ -318,6 +318,44 @@ namespace dlib
|
|||||||
w(dims-1) = 1;
|
w(dims-1) = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
typename enable_if<is_matrix<T>,scalar_type>::type length_squared (const T& x) const
|
||||||
|
{
|
||||||
|
if (!last_weight_1)
|
||||||
|
{
|
||||||
|
return dlib::dot(x,x);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// skip the last dimension
|
||||||
|
return dlib::dot(colm(x,0,x.size()-1),
|
||||||
|
colm(x,0,x.size()-1));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
typename disable_if<is_matrix<T>,scalar_type>::type length_squared (const T& x) const
|
||||||
|
{
|
||||||
|
if (!last_weight_1)
|
||||||
|
{
|
||||||
|
return dlib::dot(x,x);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
scalar_type temp = 0;
|
||||||
|
typename T::const_iterator i;
|
||||||
|
for (i = x.begin(); i != x.end(); ++i)
|
||||||
|
{
|
||||||
|
// skip the last dimension
|
||||||
|
if (static_cast<long>(i->first) < dims-1)
|
||||||
|
temp += i->second*i->second;
|
||||||
|
}
|
||||||
|
return temp;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool did_init;
|
bool did_init;
|
||||||
bool have_bias;
|
bool have_bias;
|
||||||
bool last_weight_1;
|
bool last_weight_1;
|
||||||
|
Loading…
Reference in New Issue
Block a user