当前位置: 首页 > 面试题库 >

在C ++中为Tensorflow模型定义feed_dict

羊舌阎宝
2023-03-14
问题内容

这个问题与此有关: 从Python导出Tensorflow图以在C
++中使用

我正在尝试将Tensorflow模型从Python导出到C 。问题是,我的神经网络从占位符开始以接收输入,这需要feed_dict。我找不到任何c
API为模型提供feed_dict。我能做什么?

如果没有提供feed_dicts的API,我应该如何更改我的模型,以便可以在不使用占位符的情况下对c ++进行训练和导出?


问题答案:

tensorflow::Session::Run()方法与Pythontf.Session.run()方法等效于C
,并且支持使用 inputs参数提供张量。就像C 和Python中的许多东西一样,它使用起来有些棘手(在这种情况下,文档看起来有点差……)。

inputs参数具有type const std::vector<std::pair<string, Tensor>>&。让我们分解一下:

  • 的每个元素inputs对应于您要在Run()调用中提供的单个张量(例如占位符)。元素具有类型std::pair<string, Tensor>

  • 的第一个元素std::pair<string, Tensor>是要馈送的图中张量的 名称 。例如,假设在Python中您有:

    p = tf.placeholder(..., name="placeholder")
    

    sess.run(…, feed_dict={p: …})

…然后在C ++中,该对的第一个元素将是的值p.name,在这种情况下为"placeholder:0"

  • 的第二个元素std::pair<string, Tensor>是要作为tensorflow::Tensor对象输入的值。您必须使用C ++自己构建它,定义一个Numpy数组或Python对象要复杂一些,但是这里有一个如何指定2 x 2矩阵的示例:

    using tensorflow::Tensor;
    

    using tensorflow::TensorShape;

    Tensor t(DT_FLOAT, TensorShape({2, 2}));
    auto t_matrix = t.matrix ();
    t_matrix(0, 0) = 1.0;
    t_matrix(0, 1) = 0.0;
    t_matrix(1, 0) = 0.0;
    t_matrix(1, 1) = 1.0;

…然后您可以将其t作为配对中的第二个元素。



 类似资料:
  • 我目前正在尝试将RNN模型转换为TF lite。在多次尝试失败后,我尝试运行此处存储库中给出的示例。由于层定义位置的变化,这也引发了错误。一旦修复了下面的代码 我继续出错 在使用tf.compat.v1.disable\u eager\u execution()禁用渴望执行后,我得到了错误 有人有在TensorFlow 2.0中将RNN(LSTM、GRU、CustomRNN)转换为TFLite的工

  • 英文原文:http://emberjs.com/guides/models/defining-models/ 模型是一个定义了需要呈现给用户的数据的属性和行为的类。任何用户往返于应用(或者刷新页面)能看到的内容都需要使用模型来表示。 应用中所有的模型,都继承与DS.Model: 1 App.Person = DS.Model.extend(); 在定义了一个模型类之后,就可以开始查询或者创建一

  • 在模型中定义属性,会生成表中的字段 django根据属性的类型确定以下信息: 当前选择的数据库支持字段的类型 渲染管理表单时使用的默认html控件 在管理站点最低限度的验证 django会为表增加自动增长的主键列,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列 属性命名限制 不能是python的保留关键字 由于django的查询方式,不允许使用连续

  • ThinkCMF5中定义一个模型: ThinkCMF中模型要带 Model后缀的 <?php namespace app\user\model; use think\Model; class UserModel extends Model { } 模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,如: | 模型名 | 对应数据表(假设数据库的

  • 为方便框架的后续升级,thinkcmf与thinkphp框架模型定义方法完全一致。 模型类并非必须定义,只有当存在独立的业务逻辑或者属性的时候才需要定义。 模型类通常需要继承系统的\Think\Model类或其子类,下面是一个Home\Model\UserModel类的定义: namespace Home\Model; use Think\Model; class UserModel extend

  • ThinkCMF6.0中定义一个模型: ThinkCMF中模型要带 Model后缀的,并且要指定模型名称 <?php namespace app\user\model; use think\Model; class UserModel extends Model { /** * 模型名称 * @var string */ protected $na

  • 目前为止,我们只是使用了 TensorFlow 的高级 API —— tf.keras,它的功能很强大:搭建了各种神经网络架构,包括回归、分类网络、Wide & Deep 网络、自归一化网络,使用了各种方法,包括批归一化、丢弃和学习率调度。事实上,你在实际案例中 95% 碰到的情况只需要tf.keras就足够了(和tf.data,见第 13 章)。现在来深入学习 TensorFlow 的低级 Py

  • 我最近开始修改Minecraft了,我想我的第一个发布的mod可能会给机翼提供Terraria的功能(在一段有限的时间内保持飞行的空间,然后在你接触地面之前你就不能飞起来了。这时机翼提供了一个缓慢的下落)。 到目前为止,我已经添加了项目,食谱等,我已经决定使用,我有我的第一套翅膀作为盔甲,然而,因为我没有设置纹理,他们显示为粉红色/黑色格子。我真正想要的是使用一个不同的模型--我为机翼定制的一个模