Python 切片张量是否在张量流中提供梯度?

Python 切片张量是否在张量流中提供梯度?,python,tensorflow,Python,Tensorflow,我想将1024x1024图像张量切片为16个大小为256x256的张量。我正在使用以下代码执行此操作: with tf.variable_scope("image_split", reuse=tf.AUTO_REUSE): img_array = tf.get_variable(name = 'img_array', shape = (16, 256, 256, 3), dtype = tf.float32) wi

我想将1024x1024图像张量切片为16个大小为256x256的张量。我正在使用以下代码执行此操作:

with tf.variable_scope("image_split", reuse=tf.AUTO_REUSE):
    img_array = tf.get_variable(name = 'img_array', shape = (16, 256, 256, 3),
                                dtype = tf.float32)     
with tf.control_dependencies([img_array[i].assign(img[(i%4)*256:(i%4+1)*256, 
    (i//4)*256:((i+4)//4)*256]) for i in range(16)]):
        img_array = tf.identity(img_array)
但是我收到了这个错误:
ValueError:没有为任何变量提供梯度,请检查您的图形中是否有不支持梯度的操作


如果我不切片图像,一切正常。切片张量是否提供梯度?如果是,正确的方法是什么?

请致电tf.gradients。否则,就不清楚你想区分什么。@SergeiLebedev我没有打电话给tf.gradients。我正在尝试使用optimizer.minimize最小化图像之间的差异。最终目标是在GAN网络中找到大图像的潜在表示。但在比较小图像时要这样做。所以我将大图像分割成小图像并接收到这个错误。似乎问题出在tf.assign操作上,它没有提供前面提到的梯度。有人知道如何克服这个问题吗?你一定要打电话吗?您是否可以使用Python(即图形构建时间)变量?@SergeiLebedev否。因为一个图像来自生成器,是张量。所以我需要切片张量,并将值分配给新变量。请包括对tf.gradients的调用。否则,就不清楚你想区分什么。@SergeiLebedev我没有打电话给tf.gradients。我正在尝试使用optimizer.minimize最小化图像之间的差异。最终目标是在GAN网络中找到大图像的潜在表示。但在比较小图像时要这样做。所以我将大图像分割成小图像并接收到这个错误。似乎问题出在tf.assign操作上,它没有提供前面提到的梯度。有人知道如何克服这个问题吗?你一定要打电话吗?您是否可以使用Python(即图形构建时间)变量?@SergeiLebedev否。因为一个图像来自生成器,是张量。所以我需要切片张量,并将值分配给新变量。