forked from OSSInnovation/mindspore
Lowering value checking threshold to support training with very small steps
This commit is contained in:
parent
800b9dc596
commit
b4c57295f7
|
@ -484,16 +484,18 @@ class PConstant : public PBase<PConstant<T> > {
|
|||
TypeId tensor_type = tensor_ptr->Dtype()->type_id();
|
||||
if ((tensor_type == TypeId::kNumberTypeFloat32) || (tensor_type == TypeId::kNumberTypeFloat)) {
|
||||
float *data2 = reinterpret_cast<float *>(tensor_ptr->data_c());
|
||||
auto threshold = FLT_EPSILON * FLT_EPSILON;
|
||||
for (int i = 0; i < tensor_ptr->DataSize(); i++) {
|
||||
if (fabs(data2[i] - check_value_) > FLT_EPSILON) {
|
||||
if (fabs(data2[i] - check_value_) > threshold) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
} else if (tensor_type == TypeId::kNumberTypeFloat64) {
|
||||
double *data2 = reinterpret_cast<double *>(tensor_ptr->data_c());
|
||||
auto threshold = DBL_EPSILON * DBL_EPSILON;
|
||||
for (int i = 0; i < tensor_ptr->DataSize(); i++) {
|
||||
if (fabs(data2[i] - check_value_) > DBL_EPSILON) {
|
||||
if (fabs(data2[i] - check_value_) > threshold) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue