This is an automated email from the ASF dual-hosted git repository.
liuyizhi pushed a commit to branch v0.6
in repository https://gitbox.apache.org/repos/asf/incubator-tvm.git
The following commit(s) were added to refs/heads/v0.6 by this push:
new 4d16474 [BACKPORT-0.6][NODE][Serialization]fix serialization
precision loss in float (#5860)
4d16474 is described below
commit 4d164740c581b3e10c95a32e1d86d20cef14f582
Author: Yizhi Liu <[email protected]>
AuthorDate: Sat Jun 20 17:02:02 2020 -0700
[BACKPORT-0.6][NODE][Serialization]fix serialization precision loss in
float (#5860)
Co-authored-by: LaiyuanGong <[email protected]>
Co-authored-by: LaiyuanGong <[email protected]>
---
src/node/serialization.cc | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/node/serialization.cc b/src/node/serialization.cc
index d270e72..cb310eb 100644
--- a/src/node/serialization.cc
+++ b/src/node/serialization.cc
@@ -167,7 +167,11 @@ class JSONAttrGetter : public AttrVisitor {
ReflectionVTable* reflection_ = ReflectionVTable::Global();
void Visit(const char* key, double* value) final {
- node_->attrs[key] = std::to_string(*value);
+ std::ostringstream s;
+ // Type <double> have approximately 16 decimal digits
+ s.precision(16);
+ s << (*value);
+ node_->attrs[key] = s.str();
}
void Visit(const char* key, int64_t* value) final {
node_->attrs[key] = std::to_string(*value);