我正在研究一个序列来对TensorFlow程序进行排序,该程序使用RNN来预测大小为 (BATCH_SIZE x L x 11) 的张量 . 我有一个损失函数,它采用 (BATCH_SIZE x L x 11) 张量并将其转换为另一个表示3D坐标的张量,其大小为 (BATCH_SIZE x L' x 3) ,其中 L'L 的函数 .

不幸的是,当我实现这个损失函数来操作后一个张量( L' )时,我的训练时间从9小时/纪元升至300小时/纪元 . 我认为问题在于为每个批次创建每个计算图 - 这使得一切都非常慢 .

有没有什么方法可以预先计算部分计算图来节省时间?建筑和差异化似乎都需要永远 . (注意,图的这一部分仅在损失函数中退出,因为我有从 L 空间到 L' 空间的数学映射,所以不需要训练 .

非常感谢你 . 我将不胜感激任何有关如何在TF中加载预构建子图的建议,或者是否有更好的替代方案(即移动到支持动态批处理形状的PyTorch等后端) .