Tensorflow:如何将自定义输入插入现有图形?

2024-03-10

我已经下载了一个实现 VGG16 ConvNet 的张量流 GraphDef,我用它来执行以下操作:

Pl['images'] = tf.placeholder(tf.float32, 
                          [None, 448, 448, 3],
                          name="images") #batch x width x height x channels
with open("tensorflow-vgg16/vgg16.tfmodel", mode='rb') as f: 
    fileContent = f.read()

graph_def = tf.GraphDef()
graph_def.ParseFromString(fileContent)
tf.import_graph_def(graph_def, input_map={"images": Pl['images']})

此外,我的图像特征与输出的输出相同"import/pool5/".

我怎样才能告诉我的图表不想使用他的输入"images",但是张量"import/pool5/"作为输入?

谢谢 !

EDIT

好吧,我意识到我还不太清楚。情况如下:

我正在尝试使用这个实现 https://github.com/yuxng/tensorflow/ROI 池化,使用预先训练的 VGG16,我有 GraphDef 格式。所以这就是我所做的:

首先,我加载模型:

tf.reset_default_graph()
with open("tensorflow-vgg16/vgg16.tfmodel",
          mode='rb') as f:
    fileContent = f.read()
graph_def = tf.GraphDef()
graph_def.ParseFromString(fileContent)
graph = tf.get_default_graph()

然后,我创建占位符

images = tf.placeholder(tf.float32, 
                              [None, 448, 448, 3],
                              name="images") #batch x width x height x channels
boxes = tf.placeholder(tf.float32, 
                             [None,5], # 5 = [batch_id,x1,y1,x2,y2]
                             name = "boxes")

我将图第一部分的输出定义为 conv5_3/Relu

tf.import_graph_def(graph_def, 
                    input_map={'images':images})
out_tensor = graph.get_tensor_by_name("import/conv5_3/Relu:0")

So, out_tensor是有形状的[None,14,14,512]

然后,我进行 ROI 池化:

[out_pool,argmax] = module.roi_pool(out_tensor,
                                    boxes,
                                    7,7,1.0/1) 

With out_pool.shape = N_Boxes_in_batch x 7 x 7 x 512,它齐次于pool5。然后我想喂out_pool作为紧随其后的操作的输入pool5,所以它看起来像

tf.import_graph_def(graph.as_graph_def(),
                    input_map={'import/pool5':out_pool})

但它不起作用,我有这个错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-89-527398d7344b> in <module>()
      5 
      6 tf.import_graph_def(graph.as_graph_def(),
----> 7                     input_map={'import/pool5':out_pool})
      8 
      9 final_out = graph.get_tensor_by_name("import/Relu_1:0")

/usr/local/lib/python3.4/dist-packages/tensorflow/python/framework/importer.py in import_graph_def(graph_def, input_map, return_elements, name, op_dict)
    333       # NOTE(mrry): If the graph contains a cycle, the full shape information
    334       # may not be available for this op's inputs.
--> 335       ops.set_shapes_for_outputs(op)
    336 
    337       # Apply device functions for this op.

/usr/local/lib/python3.4/dist-packages/tensorflow/python/framework/ops.py in set_shapes_for_outputs(op)
   1610       raise RuntimeError("No shape function registered for standard op: %s"
   1611                          % op.type)
-> 1612   shapes = shape_func(op)
   1613   if len(op.outputs) != len(shapes):
   1614     raise RuntimeError(

/home/hbenyounes/vqa/roi_pooling_op_grad.py in _roi_pool_shape(op)
     13   channels = dims_data[3]
     14   print(op.inputs[1].name, op.inputs[1].get_shape())
---> 15   dims_rois = op.inputs[1].get_shape().as_list()
     16   num_rois = dims_rois[0]
     17 

/usr/local/lib/python3.4/dist-packages/tensorflow/python/framework/tensor_shape.py in as_list(self)
    745       A list of integers or None for each dimension.
    746     """
--> 747     return [dim.value for dim in self._dims]
    748 
    749   def as_proto(self):

TypeError: 'NoneType' object is not iterable

有什么线索吗?


通常使用起来非常方便tf.train.export_meta_graph存储整个 MetaGraph。然后,恢复后您可以使用tf.train.import_meta_graph, because事实证明,它将所有附加参数传递给底层import_scoped_meta_graph其中有input_map参数并在它自己调用时使用它import_graph_def.

它没有记录,并且花了我太多时间才找到它,但它有效!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tensorflow:如何将自定义输入插入现有图形? 的相关文章

随机推荐

  • 跨域AJAX post调用

    我必须对位于另一台服务器上的 asp 表单进行 POST 调用 带参数 对于开发 我在同一台服务器上执行了此操作 并且运行良好 但现在我在另一台服务器上测试它 我收到的不是 200 状态 而是 0 状态 我认为这是因为它是跨域 AJAX 调
  • 如何知道三星 S8、S8+、S9 等底部导航栏何时可见?

    三星 S8 S8 S9 等上的底部导航栏在关闭时会导致 UI 和动画噩梦 导致视图从应用程序的顶部和底部移入和移出 对于这些设备 如果导航栏打开 一切都会完美运行 但如果关闭 所有动画都会低于导航栏的高度 我的想法是调整动画 但是 我很难弄
  • Paper_trail 宝石能力

    我想知道是否可以使用以下用例来实现纸迹 https github com airblade paper trail宝石 维基百科类型的应用程序 其中登录用户可以更改 编辑维基页面 其中 版主可以撤消特定更改 我知道 papertrail 允
  • 如何查看TortoiseSVN中的所有修订?

    TortoiseSVN 显示日志 选项按日期过滤修订 手动更改这些日期很麻烦 如何以最少的麻烦查看所有修订 You must在存储库的根文件夹中执行此操作 取消选中 复制 重命名时停止 Check Include merged revisi
  • 如何在android中离线获取纬度和经度?

    我想在 WiFi 和 Gps 关闭时获取当前位置 纬度和经度 可以从移动 SIM 网络获取纬度和经度 我在谷歌上搜索了更多 但没有得到满意的答案 从我昨天的经验来看question https stackoverflow com q 220
  • 简单地显示 UIInterpolatingMotionEffect 的值?

    这是一个谜题 想象一个典型的 UIInterpolatingMotionEffect UIInterpolatingMotionEffect horizontalMotionEffect UIInterpolatingMotionEffec
  • 使用 FluentValidation 的 WithMessage 方法和命名参数列表

    我正在使用 FluentValidation 并且想使用对象的某些属性值来格式化消息 问题是我对 C 中的表达式和委托的经验很少 FluentValidation 已经提供了一种使用格式参数来执行此操作的方法 RuleFor x gt x
  • Python-检查字符串是否包含数字[重复]

    这个问题在这里已经有答案了 我正在制作一个函数 它使用 while True 循环来要求用户输入通过条件的密码 长度最少为 8 15 个字符 并且至少包含一个整数 我对如何正确检查整数的输入感到困惑 我的程序 def enterNewPas
  • 如何回显$?工作?

    我正在编写一些 PowerShell 脚本来执行一些构建自动化 我发现here https stackoverflow com a 4917997 1977871 that echo 根据先前的语句返回 true 或 false 我刚刚发现
  • AWS cloudformation Template - 为模板中的堆栈提供标签

    我们希望对我们在 AWS 中创建的资源使用公司特定的标签以进行计费 我正在使用云形成模板来启动我们的 Elasticbeanstalk 实例和其他项目相关资源 当我使用 CloudFormation 控制台创建堆栈时 它会要求我在参数后面的
  • NodeJS/Express 请求实体太大 - Heroku

    我到处查看 似乎找不到对此的解释 这就是 Heroku 在我的日志中显示的内容 45 45 00 00 app web 7 Error Request Entity Too Large 45 45 00 00 app web 7 at Ob
  • GTK 3.x 是一个真正的跨平台解决方案吗?

    我已经尝试过 Qt 4 x 5 x 和 GTKmm 3 x 相比 Qt 我更喜欢 GTKmm 现在我刚刚发现 GTKmm 3 x 不提供 Windows 移植 他们也不提供 Mac 移植 基本上我除了 Linux 的库 源代码 二进制文件之
  • Promise.then() 返回 Promise { } [重复]

    这个问题在这里已经有答案了 函数 fetchData 返回一个承诺 然后我通过链接在generateURL函数中处理该承诺promise with then但是它返回 Promise 函数generateURL应该返回一个字符串我做错了什么
  • 从 pdf 中提取的细化表格 - Tabulizer

    我正在 R 中的 Tabulizer 的帮助下从 PDF 中提取一些表格 下面是其中一个表格的代码 library tabulizer location lt http napic jpph gov my portal web guest
  • 将消息从一个 Kafka 主题复制到另一个 Kafka 主题

    我想从生产集群中的 Kafka 集群 主题进入开发环境中的另一个 Kafka 集群 以进行可扩展性和回归测试 对于鸭磁带解决方案 我级联了 Kafka 消费者和生产者 但我的直觉告诉我应该有更好的方法 但是 我还没有找到任何好的解决方案 谁
  • 将 jQuery Validation 插件中的验证方法与“or”而不是“and”结合起来

    在 jQuery 验证插件中 有几个方法可以执行相同的操作 但针对不同的区域设置 例如dateISO and dateDE 两者都验证日期格式 如何组合这些以便输入元素接受either 假设我有一个
  • 如何使用 app.config 上的加密连接字符串与 Windows 窗体上的向导生成的 Dataset.xsd

    我正在开发一个 MDI 应用程序Visual Studio 2013 NET 4 5 and Oracle 开发工具最新发布 我需要创建一个主窗体 然后它将成为许多不同窗体的容器 每个窗体都是不同的应用程序 该应用程序必须连接到不同的 Or
  • 我应该在 Django 项目中使用 Celery 还是 Carrot?

    我有点困惑我应该使用哪一个 我认为两者都可以 但其中一个比另一个更好或更合适吗 http github com ask carrot tree master http github com ask carrot tree master ht
  • CSS :lang 伪类与属性选择器

    我想编写一个 css 规则 该规则将使用不同的引号来表示不同语言的引号 我知道lang是一个HTML属性 那么为什么我不能使用下面的css属性选择器呢 下面的代码不应该针对所有q and blockqutote元素内部的元素lang属性具有
  • Tensorflow:如何将自定义输入插入现有图形?

    我已经下载了一个实现 VGG16 ConvNet 的张量流 GraphDef 我用它来执行以下操作 Pl images tf placeholder tf float32 None 448 448 3 name images batch x