From 7d3ebe2d695be51aa38be3ec2b170e577e8f4fb9 Mon Sep 17 00:00:00 2001 From: nihuini Date: Thu, 26 Sep 2019 19:38:03 +0800 Subject: [PATCH] %g may output number without dot, stick to %e --- tools/caffe/caffe2ncnn.cpp | 80 +++++++++++++++++++------------------- tools/mxnet/mxnet2ncnn.cpp | 70 ++++++++++++++++----------------- tools/onnx/onnx2ncnn.cpp | 30 +++++++------- 3 files changed, 90 insertions(+), 90 deletions(-) diff --git a/tools/caffe/caffe2ncnn.cpp b/tools/caffe/caffe2ncnn.cpp index e40934979..87a697426 100644 --- a/tools/caffe/caffe2ncnn.cpp +++ b/tools/caffe/caffe2ncnn.cpp @@ -912,10 +912,10 @@ int main(int argc, char** argv) const caffe::DetectionOutputParameter& detection_output_param = layer.detection_output_param(); const caffe::NonMaximumSuppressionParameter& nms_param = detection_output_param.nms_param(); fprintf(pp, " 0=%d", detection_output_param.num_classes()); - fprintf(pp, " 1=%g", nms_param.nms_threshold()); + fprintf(pp, " 1=%e", nms_param.nms_threshold()); fprintf(pp, " 2=%d", nms_param.top_k()); fprintf(pp, " 3=%d", detection_output_param.keep_top_k()); - fprintf(pp, " 4=%g", detection_output_param.confidence_threshold()); + fprintf(pp, " 4=%e", detection_output_param.confidence_threshold()); } else if (layer.type() == "Dropout") { @@ -923,7 +923,7 @@ int main(int argc, char** argv) if (dropout_param.has_scale_train() && !dropout_param.scale_train()) { float scale = 1.f - dropout_param.dropout_ratio(); - fprintf(pp, " 0=%g", scale); + fprintf(pp, " 0=%e", scale); } } else if (layer.type() == "Eltwise") @@ -934,13 +934,13 @@ int main(int argc, char** argv) fprintf(pp, " -23301=%d", coeff_size); for (int j=0; j variances = n.attr("variances"); if (variances.empty()) @@ -1581,10 +1581,10 @@ int main(int argc, char** argv) } else { - fprintf(pp, " 5=%g", variances[0]); - fprintf(pp, " 6=%g", variances[1]); - fprintf(pp, " 7=%g", variances[2]); - fprintf(pp, " 8=%g", variances[3]); + fprintf(pp, " 5=%e", variances[0]); + fprintf(pp, " 6=%e", variances[1]); + fprintf(pp, " 7=%e", variances[2]); + fprintf(pp, " 8=%e", variances[3]); } } else if (n.op == "_contrib_MultiBoxPrior") @@ -1594,14 +1594,14 @@ int main(int argc, char** argv) fprintf(pp, " -23300=%d", (int)sizes.size()); for (int j=0; j<(int)sizes.size(); j++) { - fprintf(pp, ",%g", sizes[j]); + fprintf(pp, ",%e", sizes[j]); } std::vector aspect_ratios = n.attr("ratios"); fprintf(pp, " -23302=%d", (int)aspect_ratios.size()); for (int j=0; j<(int)aspect_ratios.size(); j++) { - fprintf(pp, ",%g", aspect_ratios[j]); + fprintf(pp, ",%e", aspect_ratios[j]); } int flip = 0; @@ -1623,8 +1623,8 @@ int main(int argc, char** argv) } else { - fprintf(pp, " 11=%g", steps[1]); - fprintf(pp, " 12=%g", steps[0]); + fprintf(pp, " 11=%e", steps[1]); + fprintf(pp, " 12=%e", steps[0]); } std::vector offsets = n.attr("offsets"); @@ -1647,7 +1647,7 @@ int main(int argc, char** argv) float scalar = n.attr("scalar"); fprintf(pp, " 0=%d", op_type); fprintf(pp, " 1=%d", with_scalar); - fprintf(pp, " 2=%g", scalar); + fprintf(pp, " 2=%e", scalar); } else if (n.op == "_maximum_scalar") { @@ -1656,7 +1656,7 @@ int main(int argc, char** argv) float scalar = n.attr("scalar"); fprintf(pp, " 0=%d", op_type); fprintf(pp, " 1=%d", with_scalar); - fprintf(pp, " 2=%g", scalar); + fprintf(pp, " 2=%e", scalar); } else if (n.op == "_minimum_scalar") { @@ -1665,7 +1665,7 @@ int main(int argc, char** argv) float scalar = n.attr("scalar"); fprintf(pp, " 0=%d", op_type); fprintf(pp, " 1=%d", with_scalar); - fprintf(pp, " 2=%g", scalar); + fprintf(pp, " 2=%e", scalar); } else if (n.op == "_minus_scalar") { @@ -1674,7 +1674,7 @@ int main(int argc, char** argv) float scalar = n.attr("scalar"); fprintf(pp, " 0=%d", op_type); fprintf(pp, " 1=%d", with_scalar); - fprintf(pp, " 2=%g", scalar); + fprintf(pp, " 2=%e", scalar); } else if (n.op == "_mul_scalar") { @@ -1683,7 +1683,7 @@ int main(int argc, char** argv) float scalar = n.attr("scalar"); fprintf(pp, " 0=%d", op_type); fprintf(pp, " 1=%d", with_scalar); - fprintf(pp, " 2=%g", scalar); + fprintf(pp, " 2=%e", scalar); } else if (n.op == "_plus_scalar") { @@ -1692,7 +1692,7 @@ int main(int argc, char** argv) float scalar = n.attr("scalar"); fprintf(pp, " 0=%d", op_type); fprintf(pp, " 1=%d", with_scalar); - fprintf(pp, " 2=%g", scalar); + fprintf(pp, " 2=%e", scalar); } else if (n.op == "_power_scalar") { @@ -1701,7 +1701,7 @@ int main(int argc, char** argv) float scalar = n.attr("scalar"); fprintf(pp, " 0=%d", op_type); fprintf(pp, " 1=%d", with_scalar); - fprintf(pp, " 2=%g", scalar); + fprintf(pp, " 2=%e", scalar); } else if (n.op == "_rdiv_scalar") { @@ -1710,7 +1710,7 @@ int main(int argc, char** argv) float scalar = n.attr("scalar"); fprintf(pp, " 0=%d", op_type); fprintf(pp, " 1=%d", with_scalar); - fprintf(pp, " 2=%g", scalar); + fprintf(pp, " 2=%e", scalar); } else if (n.op == "_rminus_scalar") { @@ -1719,7 +1719,7 @@ int main(int argc, char** argv) float scalar = n.attr("scalar"); fprintf(pp, " 0=%d", op_type); fprintf(pp, " 1=%d", with_scalar); - fprintf(pp, " 2=%g", scalar); + fprintf(pp, " 2=%e", scalar); } else if (n.op == "abs") { @@ -1731,7 +1731,7 @@ int main(int argc, char** argv) std::string type = n.attr("act_type"); if (type == "relu") { -// fprintf(pp, " 0=%g", 0.f); +// fprintf(pp, " 0=%e", 0.f); } } else if (n.op == "add_n" || n.op == "ElementWiseSum") @@ -1820,8 +1820,8 @@ int main(int argc, char** argv) { float min = n.attr("a_min"); float max = n.attr("a_max"); - fprintf(pp, " 0=%g", min); - fprintf(pp, " 1=%g", max); + fprintf(pp, " 0=%e", min); + fprintf(pp, " 1=%e", max); } else if (n.op == "Concat") { @@ -2108,16 +2108,16 @@ int main(int argc, char** argv) float alpha = n.attr("alpha"); float beta = n.attr("beta"); - fprintf(pp, " 0=%g", alpha); - fprintf(pp, " 1=%g", beta); + fprintf(pp, " 0=%e", alpha); + fprintf(pp, " 1=%e", beta); } else if (n.op == "HardSwish") { float alpha = n.attr("alpha"); float beta = n.attr("beta"); - fprintf(pp, " 0=%g", alpha); - fprintf(pp, " 1=%g", beta); + fprintf(pp, " 0=%e", alpha); + fprintf(pp, " 1=%e", beta); } else if (n.op == "InstanceNorm") { @@ -2127,7 +2127,7 @@ int main(int argc, char** argv) std::vector beta_data = n.weight(1); fprintf(pp, " 0=%d", (int)gamma_data.size()); - fprintf(pp, " 1=%g", eps); + fprintf(pp, " 1=%e", eps); fwrite(gamma_data.data(), sizeof(float), gamma_data.size(), bp); fwrite(beta_data.data(), sizeof(float), beta_data.size(), bp); @@ -2161,7 +2161,7 @@ int main(int argc, char** argv) fprintf(pp, " 0=%d", across_spatial); fprintf(pp, " 4=%d", across_channel); fprintf(pp, " 1=%d", channel_shared); - fprintf(pp, " 2=%g", eps); + fprintf(pp, " 2=%e", eps); fprintf(pp, " 3=%d", scale_data_size); const float scale_data[1] = { 1.f }; @@ -2173,12 +2173,12 @@ int main(int argc, char** argv) if (type == "elu") { float slope = n.has_attr("slope") ? n.attr("slope") : 0.25f; - fprintf(pp, " 0=%g", slope); + fprintf(pp, " 0=%e", slope); } else if (type == "leaky" || type.empty()) { float slope = n.has_attr("slope") ? n.attr("slope") : 0.25f; - fprintf(pp, " 0=%g", slope); + fprintf(pp, " 0=%e", slope); } else if (type == "prelu") { @@ -2276,7 +2276,7 @@ int main(int argc, char** argv) fprintf(pp, " 2=%d", left); fprintf(pp, " 3=%d", right); fprintf(pp, " 4=%d", type); - fprintf(pp, " 5=%g", constant_value); + fprintf(pp, " 5=%e", constant_value); } else if (n.op == "Pooling") { @@ -2547,8 +2547,8 @@ int main(int argc, char** argv) if (sample_type == "nearest") { fprintf(pp, " 0=1"); - fprintf(pp, " 1=%g", (float)scale); - fprintf(pp, " 2=%g", (float)scale); + fprintf(pp, " 1=%e", (float)scale); + fprintf(pp, " 2=%e", (float)scale); } else if (sample_type == "bilinear") { diff --git a/tools/onnx/onnx2ncnn.cpp b/tools/onnx/onnx2ncnn.cpp index cb45fb22f..42fbef381 100644 --- a/tools/onnx/onnx2ncnn.cpp +++ b/tools/onnx/onnx2ncnn.cpp @@ -1346,8 +1346,8 @@ int main(int argc, char** argv) { float min = get_node_attr_f(node, "min", -FLT_MAX); float max = get_node_attr_f(node, "max", FLT_MAX); - fprintf(pp, " 0=%g", min); - fprintf(pp, " 1=%g", max); + fprintf(pp, " 0=%e", min); + fprintf(pp, " 1=%e", max); } else if (op == "Concat") { @@ -1606,7 +1606,7 @@ int main(int argc, char** argv) else if (op == "Elu") { float alpha = get_node_attr_f(node, "alpha", 1.f); - fprintf(pp, " 0=%g", alpha); + fprintf(pp, " 0=%e", alpha); } else if (op == "Exp") { @@ -1674,16 +1674,16 @@ int main(int argc, char** argv) float alpha = get_node_attr_f(node, "alpha", 0.2f); float beta = get_node_attr_f(node, "beta", 0.5f); - fprintf(pp, " 0=%g", alpha); - fprintf(pp, " 1=%g", beta); + fprintf(pp, " 0=%e", alpha); + fprintf(pp, " 1=%e", beta); } else if (op == "HardSwish") { float alpha = get_node_attr_f(node, "alpha", 0.2f); float beta = get_node_attr_f(node, "beta", 0.5f); - fprintf(pp, " 0=%g", alpha); - fprintf(pp, " 1=%g", beta); + fprintf(pp, " 0=%e", alpha); + fprintf(pp, " 1=%e", beta); } else if (op == "ImageScaler") { @@ -1709,7 +1709,7 @@ int main(int argc, char** argv) int channels = get_tensor_proto_data_size(scale); fprintf(pp, " 0=%d", channels); - fprintf(pp, " 1=%g", eps); + fprintf(pp, " 1=%e", eps); fwrite_tensor_proto_data(scale, bp); fwrite_tensor_proto_data(B, bp); } @@ -1717,7 +1717,7 @@ int main(int argc, char** argv) { float alpha = get_node_attr_f(node, "alpha", 0.01f); - fprintf(pp, " 0=%g", alpha); + fprintf(pp, " 0=%e", alpha); } else if (op == "Log") { @@ -1735,9 +1735,9 @@ int main(int argc, char** argv) fprintf(pp, " 0=%d", norm_region); fprintf(pp, " 1=%d", size); - fprintf(pp, " 2=%g", alpha); - fprintf(pp, " 3=%g", beta); - fprintf(pp, " 4=%g", bias); + fprintf(pp, " 2=%e", alpha); + fprintf(pp, " 3=%e", beta); + fprintf(pp, " 4=%e", bias); } else if (op == "MatMul") { @@ -1843,7 +1843,7 @@ int main(int argc, char** argv) fprintf(pp, " 2=%d", left); fprintf(pp, " 3=%d", right); fprintf(pp, " 4=%d", type); - fprintf(pp, " 5=%g", value); + fprintf(pp, " 5=%e", value); } else if (op == "Pow") { @@ -2098,8 +2098,8 @@ int main(int argc, char** argv) } fprintf(pp, " 0=%d", resize_type); - fprintf(pp, " 1=%g", h_scale); - fprintf(pp, " 2=%g", w_scale); + fprintf(pp, " 1=%e", h_scale); + fprintf(pp, " 2=%e", w_scale); } else {