2024-10-02 12:29:00 发布
网友
有没有什么方法可以使用TensorFlow实现递归神经网络,比如[Socher et al. 2011]中的那种? 注意,这与递归神经网络不同,后者由TensorFlow很好地支持。 不同之处在于,网络不是复制成线性操作序列,而是复制到树结构中。在
我设想我可以使用While操作为数据集的每个条目构造类似于树数据结构的广度优先遍历。在
While
也许在TysFooFoE中实现树遍历作为一个新的C++ OP,类似于^ {CD1>}(但更一般)?在
目前,由于图的结构依赖于输入,这些模型很难在TensorFlow中高效、干净地实现。这也使得小批量处理变得非常困难。可以使用像您提到的while循环这样的东西,但要做到干净并不容易。在
你可以为每个例子建立一个新的图表,但这将是非常烦人的。如果,对于给定的输入大小,您可以枚举数量相当少的可能的图,您可以在它们之间选择并一次构建它们,但对于较大的输入,这是不可能的。在
您也可以通过复杂的图形来路由示例tf.聚集逻辑和面具,但这也可能是一个巨大的痛苦。在
最终,动态构建每个示例的图形可能是最简单的,而且将来有可能会有其他方法支持更好的即时样式执行。但从0.8版开始,我希望这会有点烦人,并且会带来一些开销,正如雅罗斯拉夫在评论中提到的那样。在
编辑:既然我回答了,下面是一个使用while循环的静态图的例子:https://github.com/bogatyy/cs224d/tree/master/assignment3 我不知道它与这种模式的自定义C++代码相比有多大的性能,尽管原则上它可以批量化。在
您的猜测是正确的,您可以使用tf.while_loop和tf.cond来表示静态图中的树结构。更多信息: https://github.com/bogatyy/cs224d/tree/master/assignment3
tf.while_loop
tf.cond
在我的评估中,与为每个新树重新构建图形相比,它使训练速度提高了16倍。在
目前,由于图的结构依赖于输入,这些模型很难在TensorFlow中高效、干净地实现。这也使得小批量处理变得非常困难。可以使用像您提到的while循环这样的东西,但要做到干净并不容易。在
你可以为每个例子建立一个新的图表,但这将是非常烦人的。如果,对于给定的输入大小,您可以枚举数量相当少的可能的图,您可以在它们之间选择并一次构建它们,但对于较大的输入,这是不可能的。在
您也可以通过复杂的图形来路由示例tf.聚集逻辑和面具,但这也可能是一个巨大的痛苦。在
最终,动态构建每个示例的图形可能是最简单的,而且将来有可能会有其他方法支持更好的即时样式执行。但从0.8版开始,我希望这会有点烦人,并且会带来一些开销,正如雅罗斯拉夫在评论中提到的那样。在
编辑:既然我回答了,下面是一个使用while循环的静态图的例子:https://github.com/bogatyy/cs224d/tree/master/assignment3 我不知道它与这种模式的自定义C++代码相比有多大的性能,尽管原则上它可以批量化。在
您的猜测是正确的,您可以使用
tf.while_loop
和tf.cond
来表示静态图中的树结构。更多信息: https://github.com/bogatyy/cs224d/tree/master/assignment3在我的评估中,与为每个新树重新构建图形相比,它使训练速度提高了16倍。在
相关问题 更多 >
编程相关推荐