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

2024-10-02 12:29:00 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有什么方法可以使用TensorFlow实现递归神经网络,比如[Socher et al. 2011]中的那种? 注意,这与递归神经网络不同,后者由TensorFlow很好地支持。 不同之处在于,网络不是复制成线性操作序列,而是复制到树结构中。在

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

也许在TysFooFoE中实现树遍历作为一个新的C++ OP,类似于^ {CD1>}(但更一般)?在


Tags: 数据方法网络数据结构tensorflow条目序列线性
2条回答

目前,由于图的结构依赖于输入,这些模型很难在TensorFlow中高效、干净地实现。这也使得小批量处理变得非常困难。可以使用像您提到的while循环这样的东西,但要做到干净并不容易。在

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

您也可以通过复杂的图形来路由示例tf.聚集逻辑和面具,但这也可能是一个巨大的痛苦。在

最终,动态构建每个示例的图形可能是最简单的,而且将来有可能会有其他方法支持更好的即时样式执行。但从0.8版开始,我希望这会有点烦人,并且会带来一些开销,正如雅罗斯拉夫在评论中提到的那样。在

编辑:既然我回答了,下面是一个使用while循环的静态图的例子:https://github.com/bogatyy/cs224d/tree/master/assignment3 我不知道它与这种模式的自定义C++代码相比有多大的性能,尽管原则上它可以批量化。在

您的猜测是正确的,您可以使用tf.while_looptf.cond来表示静态图中的树结构。更多信息: https://github.com/bogatyy/cs224d/tree/master/assignment3

在我的评估中,与为每个新树重新构建图形相比,它使训练速度提高了16倍。在

相关问题 更多 >

    热门问题