【发布时间】:2019-03-20 07:58:30
【问题描述】:
我正在尝试将值分配给 tensorflow 中的变量切片,但显示以下错误:'ValueError: Sliced assignment is only supported for variables'。为什么即使我尝试对变量进行切片分配,也会显示此错误。我的代码是这样的:
var1 = var1[startx:endx,starty:endy].assign(tf.ones([endx-startx,endy-starty],dtype=tf.int32))
其中var1 是一个张量流变量。
【问题讨论】:
-
你能展示创建
var1的代码吗?也请张贴print(var1); print(type(var1))的输出。 -
欢迎来到 Stack Overflow!你能告诉我们
var1最初是如何定义的吗?或者至少可以重现完全相同的错误?通过创建一个合适的minimal reproducible example,回答这个问题会容易得多。 -
@a_guest
var1是否被变量节点正确实例化并不重要——切片操作已经导致了这个错误。 (当然在给定的 sn-p 之外可能还有更多问题!) -
由于您将
assign操作分配回var1,我怀疑您之前已经这样做了,var1现在拥有一个分配操作。请注意,此分配发生在原地并且不返回新的张量对象。所以重新分配给同一个名字实际上没有意义。
标签: python variables tensorflow slice assign