addvalue.c

  name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-5572165936844014&dt=1194442938015&lmt=1194190197&format=336x280_as&output=html&correlator=1194442937843&url=file%3A%2F%2F%2FC%3A%2FDocuments%2520and%2520Settings%2Flhh1%2F%E6%A1%8C%E9%9D%A2%2FCLanguage.htm&color_bg=FFFFFF&color_text=000000&color_link=000000&color_url=FFFFFF&color_border=FFFFFF&ad_type=text&ga_vid=583001034.1194442938&ga_sid=1194442938&ga_hid=1942779085&flash=9&u_h=768&u_w=1024&u_ah=740&u_aw=1024&u_cd=32&u_tz=480&u_java=true" frameborder="0" width="336" scrolling="no" height="280" allowtransparency="allowtransparency"> #include <stdio.h>
#include <stdarg.h>

int add_values(int value, ...)
 {
    va_list argument_ptr;
    int result = 0;

    if (value != 0)
      {
        result += value;
        va_start(argument_ptr, value);

        while ((value = va_arg(argument_ptr, int)) != 0)
          result += value;

        va_end(argument_ptr);
      } 
    return(result);
 }

void main(void)
 {
   printf("Sum of 3 is %d/n", add_values(3, 0));
   printf("Sum of 3 + 5 is %d/n", add_values(3, 5, 0));
   printf("Sum of 3 + 5 + 8 is %d/n", add_values(3, 5, 8, 0));
   printf("Sum of 3 + 5 + 8 + 9 is %d/n", add_values(3, 5, 8 , 9, 0));
 }

请解析这段代码: void ConvOnnx::run(NodeDef *dst_node, const onnx::NodeProto *src_node, onnx::GraphProto *src_graph, std::map<std::string, onnx::TensorProto> &weights) { VLOG(0) << "run Converter, op type is Conv" << "[" << src_node->op_type() << "]"; std::map<std::string, const onnx::NodeProto *> all_node_map; for (int i = 0; i < src_graph->node_size(); i++) { const onnx::NodeProto &node = src_graph->node(i); all_node_map[node.name()] = &node; } onnx::AttributeProto value; if (jz_onnx::find_attr_value(*src_node, "rate", value)) { std::vector<int64> tmp; tmp.resize(value.ints_size()); for (int j = 0; j < value.ints_size(); j++) { tmp[j] = value.ints(j); } add_node_attr("rate", tmp, dst_node); } if (jz_onnx::find_attr_value(*src_node, "strides", value)) { const int num_stride = value.ints_size() + 2; std::vector<int64> tmp(num_stride, 1); for (int j = 0; j < value.ints_size(); j++) { tmp[j + 1] = value.ints(j); } add_node_attr("strides", tmp, dst_node); } if (jz_onnx::find_attr_value(*src_node, "dilations", value)) { const int num_dilation = value.ints_size() + 2; std::vector<int64> tmp(num_dilation, 1); for (int j = 0; j < value.ints_size(); j++) { tmp[j + 1] = value.ints(j); } add_node_attr("dilations", tmp, dst_node); } if (jz_onnx::find_attr_value(*src_node, "auto_pad", value)) { const auto &paddingType = value.s(); if (paddingType == "NOTSET" || paddingType == "VALID") { add_node_attr("padding", "VALID", dst_node); } else if (paddingType == "SAME_UPPER" || paddingType == "SAME_LOWER") { if (paddingType == "SAME_LOWER") { VLOGW << "The padding mode in ONNX SAME_LOWER and Magik SAME is not exactly the same!"; } add_node_attr("padding", "SAME", dst_node); } else { VLOGEC(MAGIK_CONVERT, MAGIK_CODE_NOT_SUPPORT_ATTRIBUTE) << "Auto type '" << paddingType << "' is not supported!"; } } if (jz_onnx::find_attr_value(*src_node, "pads", value)) { add_node_attr("padding", "VALID", dst_node); auto pad_values = value.ints(); if (pad_values.size() == 4) { // HWHW => HHWW std::vector<int64> pads{value.ints(0), value.ints(2), value.ints(1), value.ints(3)}; add_node_attr("pads", pads, dst_node); } else if (pad_values.size() == 2) { std::vector<int64> pads{value.ints(0), value.ints(1)}; add_node_attr("pads", pads, dst_node); } else { VLOGEC(MAGIK_CONVERT, MAGIK_CODE_NOT_MATCHED_SIZE) << "Conv pad size error! (node: " << src_node->name() << ", " << "pads size" << pad_values.size() << ")"; } }
最新发布
03-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值