Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tensorflow能否扫描并仅保留最终结果?_Python_Tensorflow - Fatal编程技术网

Python tensorflow能否扫描并仅保留最终结果?

Python tensorflow能否扫描并仅保留最终结果?,python,tensorflow,Python,Tensorflow,下面的代码使用tf.scan计算数组的和。 tensorflow会分配一个6元素数组来保存这六个部分和吗? 或者,tensorflow足够聪明,只分配一个1元素数组来保存部分和 如何确定 import tensorflow as tf import numpy as np elems = np.array([1, 2, 3, 4, 5, 6]) s = tf.scan(lambda a, x: a + x, elems) # s == [1, 3, 6, 10, 15, 21] final_s

下面的代码使用
tf.scan
计算数组的和。 tensorflow会分配一个6元素数组来保存这六个部分和吗? 或者,tensorflow足够聪明,只分配一个1元素数组来保存部分和

如何确定

import tensorflow as tf
import numpy as np

elems = np.array([1, 2, 3, 4, 5, 6])
s = tf.scan(lambda a, x: a + x, elems)
# s == [1, 3, 6, 10, 15, 21]
final_s = s[-1]  # final_s == 21
with tf.Session() as sess:
    print(sess.run(final_s))

以下代码导致16 GB计算机内存不足

我猜tensorflow从未尝试优化扫描

import tensorflow as tf
import numpy as np

elems = tf.ones(int(1e9), dtype=np.float32)  # 4GB
s = tf.scan(lambda a, x: a + x, elems)
final_s = s[-1]
with tf.Session() as sess:
    print(sess.run(final_s))

theano足够聪明,可以优化扫描:即使使用
back\u prop=False
,它仍然会导致内存不足。tf.scan太令人失望了。如果您只想要最终结果,您应该使用
tf.foldl
。对于我的第二个例子,这个例子可能更有效。@xdurch0
tf.foldl
back\u prop=False
仍然会导致内存不足。theano足够聪明,可以优化扫描:即使使用
back\u prop=False
,它仍然会导致内存不足。tf.scan太令人失望了。如果你只想要最终结果,您应该使用
tf.foldl
。对于我的第二个示例,在这种情况下,这个示例可能更有效。@xdurch0
tf.foldl
back\u prop=False
仍然会导致内存不足。