zoukankan      html  css  js  c++  java
  • tensorflow 升级到1.9-rc0,生成静态图frozen graph.pb本地测试正常, 在其他版本(eg1.4版本)或者android下运行出错NodeDef mentions attr 'dilations' not in Op<name=Conv2D; signature=input:T, filter:T -> output:T; attr=T:type,allowed=[DT_

    这时节点定义找不到NodeDef attr 'dilations' not in,说明执行版本的NodeDef不在节点定义上,两个不一致,分别是执行inference的代码生成静态图节点不一致(当然,因为执行环境和生成环境不一样,也就是版本问题),

    解决方案是:如果是云端部署,那就在云端生成模型graph,然后也在云端将ckpt和graph合在一起生成静态图。如果是嵌入式,就是将本地版本调整一致(可能也有其他原因可以解决)。

    具体错误是:

    2018-08-30 22:26:51.668185: E tensorflow/core/common_runtime/executor.cc:643] Executor failed to create kernel. Invalid argument: NodeD
    ons attr 'dilations' not in Op<name=Conv2D; signature=input:T, filter:T -> output:T; attr=T:type,allowed=[DT_HALF, DT_FLOAT]; attr=stri
    (int); attr=use_cudnn_on_gpu:bool,default=true; attr=padding:string,allowed=["SAME", "VALID"]; attr=data_format:string,default="NHWC",a
    "NHWC", "NCHW"]>; NodeDef: resnet_v1_101/conv1/Conv2D = Conv2D[T=DT_FLOAT, data_format="NHWC", dilations=[1, 1, 1, 1], padding="VALID",
    =[1, 2, 2, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](resnet_v1_101/Pad, resnet_v1_101/conv1/we
    (Check whether your GraphDef-interpreting binary is up to date with your GraphDef-generating binary.).
         [[Node: resnet_v1_101/conv1/Conv2D = Conv2D[T=DT_FLOAT, data_format="NHWC", dilations=[1, 1, 1, 1], padding="VALID", strides=[
     1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](resnet_v1_101/Pad, resnet_v1_101/conv1/weights)]]
    Traceback (most recent call last):
      File "time_task_of_belt_detection_new.py", line 186, in <module>
        tf.app.run()
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 48, in run
        _sys.exit(main(_sys.argv[:1] + flags_passthrough))
      File "time_task_of_belt_detection_new.py", line 175, in main
        [predictions], feed_dict={image_tensor: image_np_expanded})
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 889, in run
        run_metadata_ptr)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1120, in _run
        feed_dict_tensor, options, run_metadata)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1317, in _do_run
        options, run_metadata)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", line 1336, in _do_call
        raise type(e)(node_def, op, message)
    tensorflow.python.framework.errors_impl.InvalidArgumentError: NodeDef mentions attr 'dilations' not in Op<name=Conv2D; signature=input:
    r:T -> output:T; attr=T:type,allowed=[DT_HALF, DT_FLOAT]; attr=strides:list(int); attr=use_cudnn_on_gpu:bool,default=true; attr=padding
    allowed=["SAME", "VALID"]; attr=data_format:string,default="NHWC",allowed=["NHWC", "NCHW"]>; NodeDef: resnet_v1_101/conv1/Conv2D = Conv
    FLOAT, data_format="NHWC", dilations=[1, 1, 1, 1], padding="VALID", strides=[1, 2, 2, 1], use_cudnn_on_gpu=true, _device="/job:localhos
    a:0/task:0/device:GPU:0"](resnet_v1_101/Pad, resnet_v1_101/conv1/weights). (Check whether your GraphDef-interpreting binary is up to da
    your GraphDef-generating binary.).
         [[Node: resnet_v1_101/conv1/Conv2D = Conv2D[T=DT_FLOAT, data_format="NHWC", dilations=[1, 1, 1, 1], padding="VALID", strides=[
     1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](resnet_v1_101/Pad, resnet_v1_101/conv1/weights)]]

    Caused by op u'resnet_v1_101/conv1/Conv2D', defined at:
      File "time_task_of_belt_detection_new.py", line 186, in <module>
        tf.app.run()
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 48, in run
        _sys.exit(main(_sys.argv[:1] + flags_passthrough))
      File "time_task_of_belt_detection_new.py", line 98, in main
        tf.import_graph_def(od_graph_def, name='')
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/importer.py", line 313, in import_graph_def
        op_def=op_def)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 2956, in create_op
        op_def=op_def)
      File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/ops.py", line 1470, in __init__
        self._traceback = self._graph._extract_stack()  # pylint: disable=protected-access

    InvalidArgumentError (see above for traceback): NodeDef mentions attr 'dilations' not in Op<name=Conv2D; signature=input:T, filter:T ->
    T; attr=T:type,allowed=[DT_HALF, DT_FLOAT]; attr=strides:list(int); attr=use_cudnn_on_gpu:bool,default=true; attr=padding:string,allowe
    ", "VALID"]; attr=data_format:string,default="NHWC",allowed=["NHWC", "NCHW"]>; NodeDef: resnet_v1_101/conv1/Conv2D = Conv2D[T=DT_FLOAT,
    rmat="NHWC", dilations=[1, 1, 1, 1], padding="VALID", strides=[1, 2, 2, 1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/ta
    ice:GPU:0"](resnet_v1_101/Pad, resnet_v1_101/conv1/weights). (Check whether your GraphDef-interpreting binary is up to date with your G
    generating binary.).
         [[Node: resnet_v1_101/conv1/Conv2D = Conv2D[T=DT_FLOAT, data_format="NHWC", dilations=[1, 1, 1, 1], padding="VALID", strides=[
     1], use_cudnn_on_gpu=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](resnet_v1_101/Pad, resnet_v1_101/conv1/weights)]]

  • 相关阅读:
    设计模式:访问者模式
    设计模式:解释器模式
    设计模式:享元模式
    设计模式:中介者模式
    设计模式:职责链模式
    设计模式:命令模式
    设计模式:桥接模式
    设计模式:单例模式
    设计模式:迭代器模式
    设计模式:组合模式
  • 原文地址:https://www.cnblogs.com/YouXiangLiThon/p/9564194.html
Copyright © 2011-2022 走看看