pb通过对象名称调用对象_C++ 可调用对象(二)

本文介绍了C++中的Lambda表达式,包括按值和按引用捕获局部变量的方式,多参数捕获,以及隐式按值和按引用捕获。Lambda可以用于创建匿名函数对象,可以使用auto、函数指针或std::function进行保存和调用。此外,当lambda不捕获任何外部变量时,可以使用普通函数指针。
摘要由CSDN通过智能技术生成
点击上方“蓝字”,发现更多精彩。本文在前一篇关于函数对象、bind 函数的基础上,对 C++ 中 lambda不表达式的使用进行总结。lambda01PART定义一个 lambda 表达式表示一个可调用的代码单元,可以理解为是一个未命名的内敛函数。类似任何函数,一个 lambda 具有返回类型、参数列表和函数体;和普通函数不同, lambda 必须使用尾置返回来指定返回类型 。

9580d14dbf09dd103f91b9d598bdb4a9.png

①.捕获列表捕获列表是一个 lambda 所在函数中定义的局部变量的列表,捕获列表能够捕捉上下文中的变量以供 lambda 使用。捕获列表可以为空,但 [] 不可以省略,编译器依次来判断接下来的代码是否是 lambda 表达式。②.参数列表和普通函数的参数列表一致,如果不需要参数传递,则可以连同括号 () 一起省略。lambda 中参数不能有缺省值,也不能有无名参数。③.mutable默认情况下,对于一个值被拷贝的变量,lambda 不会改变其值,加上 mutable 修饰符后,可以修改传递进来的拷贝。在使用 mutable 修饰符时,参数列表部分不可省略,但列表可以为空。④.返回类型标识函数返回值的类型,当返回值为 void,或者函数体中只有一处 return 时可用省略。⑤.函数体标识函数的实现,内容与普通函数一样&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++调用.pb文件可以使用TensorFlow C++ API。下面是一个简单的例子,展示了如何使用TensorFlow C++ API加载.pb文件并进行推理: ```c++ #include <fstream> #include <iostream> #include "tensorflow/cc/saved_model/loader.h" #include "tensorflow/core/framework/tensor.h" int main() { // 加载模型 tensorflow::SavedModelBundle bundle; tensorflow::SessionOptions session_options; tensorflow::RunOptions run_options; tensorflow::Status status = tensorflow::LoadSavedModel( session_options, run_options, "/path/to/model", {"serve"}, &bundle); if (!status.ok()) { std::cerr << "Error loading model: " << status.ToString() << std::endl; return 1; } // 构造输入张量 tensorflow::Tensor input_tensor(tensorflow::DT_FLOAT, tensorflow::TensorShape({1, 224, 224, 3})); auto input_tensor_mapped = input_tensor.tensor<float, 4>(); // TODO: 填充输入张量的值 // 进行推理 std::vector<tensorflow::Tensor> outputs; status = bundle.GetSession()->Run({{"input", input_tensor}}, {"output"}, {}, &outputs); if (!status.ok()) { std::cerr << "Error running inference: " << status.ToString() << std::endl; return 1; } // 处理输出张量 auto output_tensor_mapped = outputs[0].tensor<float, 2>(); // TODO: 处理输出张量的值 return 0; } ``` 上述代码中,首先使用`tensorflow::LoadSavedModel`函数加载.pb文件。然后,构造输入张量,并将其传递给`bundle.GetSession()->Run`函数进行推理。最后,处理输出张量的值。 需要注意的是,推理时需要指定输入张量的名称和输出张量的名称。在上述代码中,输入张量的名称为`"input"`,输出张量的名称为`"output"`。这些名称需要与.pb文件中的节点名称相对应。 另外,在编译时需要链接TensorFlow的静态库,具体方法可以参考TensorFlow C++ API的文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值