python – 如何在TensorFlow中实现递归神经网络?

是否有某种方法使用TensorFlow实现像 [Socher et al. 2011]中那样的递归神经网络?
请注意,这与TensorFlow很好地支持的递归神经网络不同.
不同之处在于网络不会复制到线性操作序列中,而是复制到树结构中.

我想我可以使用While op为我的数据集的每个条目构造类似于树数据结构的广度优先遍历.

也许可以在TensorFlow中实现树遍历作为新的C op,类似于While(但更一般)?

解决方法

目前,这些模型很难在TensorFlow中高效,干净地实现,因为图形结构取决于输入.这也使得进行小型化非常困难.可以使用你提到的while循环之类的东西,但干净利落地做起来并不容易.

您可以为每个示例构建一个新图形,但这将非常烦人.如果对于给定的输入大小,您可以枚举相当少量的可能图形,您可以在它们之间进行选择并一次构建它们,但对于较大的输入,这是不可能的.

您还可以使用复杂的tf.gather逻辑和掩码在图表中路由示例,但这也可能是一个巨大的痛苦.

最终,为每个示例动态构建图形可能是最简单的,并且将来有可能存在支持更好的即时样式执行的替代方案.但是从v0.8开始,我认为这有点烦人,并且在雅罗斯拉夫的评论中提到了一些开销.

编辑:自从我回答以来,这是一个使用带有while循环的静态图的示例:https://github.com/bogatyy/cs224d/tree/master/assignment3我不确定它与这样的模型的自定义C代码相比是多么高效,尽管原则上它可以被批量处理.

相关文章

在前一篇博客中我们介绍了加侧旋的乒乓球弧圈技术的模拟,本...
在近期conda的版本更新中,有可能会删除路径下的_sysconfigd...
本文主要展示了一些lambda表达式的使用示例,通过这些示例,...
本文通过对比Jax和Numpy计算Normalized Hamming Distance的过...
我们知道GPU加速在可并行化程度比较高的算法中,能够发挥出比...
Numpy这个库在Python编程中非常的常用,不仅在性能上补足了P...