我在张量流中实现了relatively simple physics model(一个矩阵对角化,一些矩阵求逆,一组张量代数)。图形的构建(在python中)需要3秒。对于典型输入,评估需要10 ms。但是第一次评估似乎有一个惩罚,使评估时间达到300毫秒。 (为了进行比较,等效的numpy实现需要30 ms。)
第一次运行中的张量流是什么导致了更大的评估时间?
有没有办法将这些东西与张量评估分开初始化?
答案 0 :(得分:1)
第一次使用特定的访存(和/或提要)运行图时,会运行优化过程以重写图(在构造Session时可以通过传递RewriterConfig在某种程度上进行配置)。但这也是分配发生的时候。
通常,缓存会话(以及分配和优化图)是有意义的,并在必要时进行单独的预热调用。