如何从TensorFlow函数名称轻松获取protobuf名称?

时间:2018-09-12 07:46:22

标签: tensorflow

这个问题似乎有点奇怪,因此我将尝试添加一些上下文,说明为什么我们想从任何TensorFlow函数名称中知道protobuf名称。

完成我的工作后,我们正在使用TensorFlow作为基本的神经网络框架。我们可以将其分为两部分:

  • 研究人员正在使用TensorFlow Python软件包训练模型
  • 开发人员获得了一些TensorFlow模型并尝试在许多平台上执行

平台不具有运行TensorFlow的相同功能。一些只能运行TensorFlow Lite,另一些只能内部构建TensorFlow的一小部分,而另一些只能运行TensorFlow的特定版本。 但是每次我们知道可用的TensorFlow函数是什么。这些函数以Python方式编写,例如tf.用于基本函数,tf.nn.用于神经网络专用函数,tf.image.用于图像处理专用函数等。

我们希望能够预见某些模型可能无法在我们的平台上运行的事实。为此,我们具有基于protobuf的文件,该文件描述了所有TensorFlow模型并给出了protobuf的基本名称。 tf.nn.max_pool的类型为Reshape

我通过创建一个小函数来做到这一点:

fph = tf.placeholder(tf.float32)
def tf_nn_log_softmax():
    a = tf.nn.log_softmax(fph)
    return a.op.type

但是如果我需要为特定版本可以处理的所有TensorFlow函数执行此操作,则会非常麻烦。

请务必注意,我对TensorFlow和Protobuf并不了解很多。也许在TensorFlow框架中可以了解Protobuf如何转换名称,但是我绝对不知道该在哪里。

有人知道这个信息在哪里吗?也许已经有我想要做的内置实用程序?

0 个答案:

没有答案