如果我在Tensorflow中定义一个自定义Op,是否可以为顶部提供两个内核,这些内核是多态的,是否完全定义了输入的形状?例如,如果形状完全已知/定义,我可以在内核构造中构造一次某些结构。
答案 0 :(得分:0)
目前无法做到这一点。 kernel dispatch mechanism在TensorFlow代码的低级部分中实现,其中有关张量形状的信息(通常)不可用。
然而,基于已知形状专门化图形的能力似乎是一种有用的能力,并且可能值得将其作为GitHub issues page上的特征请求提升。一种可能的解决方法是尝试使用形状信息的registering an optimization pass并将具有已知输入形状的ops的名称重写为依赖于静态形状信息的不同操作(例如,通过附加的attr)。但是,在TensorFlow中执行此操作当前需要您从源代码重建。