小编Hen*_*low的帖子

tensorflow tf.slice 是否会产生分配和/或内存复制?

b = tf.slice(a, [...], [...])
Run Code Online (Sandbox Code Playgroud)

分配一个新的内存缓冲区,然后从 a 的缓冲区复制?或者 a 和 b 共享相同的缓冲区吗?

还有,那又怎么样

... = tf.nn.convolution(tf.slice(a, [...], [...]), ...)
Run Code Online (Sandbox Code Playgroud)

在这种情况下,切片没有被命名。这会导致分配和复制吗?

一般来说,有一些资源可以学习这些内存管理细节吗?

谢谢!

python memory-management tensorflow

5
推荐指数
1
解决办法
1195
查看次数

tf.assign到可变切片在tf.while_loop中不起作用

以下代码有什么问题?如果将tf.assignop应用于tf.Variable循环的外部,则将其应用于切片时效果很好。但是,在这种情况下,它给出以下错误。

import tensorflow as tf

v = [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0]
n = len(v)
a = tf.Variable(v, name = 'a')

def cond(i, a):
    return i < n 

def body(i, a):
    tf.assign(a[i], a[i-1] + a[i-2])
    return i + 1, a

i, b = tf.while_loop(cond, body, [2, a]) 
Run Code Online (Sandbox Code Playgroud)

结果是:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/hrbigelow/anaconda3/lib/python3.6/site-packages/tensorflow/python/ops/control_flow_ops.py", line 3210, in while_loop
    result = loop_context.BuildLoop(cond, body, loop_vars, …
Run Code Online (Sandbox Code Playgroud)

python tensorflow

4
推荐指数
1
解决办法
677
查看次数

标签 统计

python ×2

tensorflow ×2

memory-management ×1