小编Der*_*ter的帖子

TensorFlow while_loop 将变量转换为常量?

我正在尝试更新嵌套的二维张量while_loop()。但是,当将变量传递给第二个循环时,我无法使用tf.assign()它更新它,因为它会引发此错误:

ValueError: Sliced assignment is only supported for variables
Run Code Online (Sandbox Code Playgroud)

如果我在 while_loop 之外创建变量并仅在第一个循环中使用它,它会以某种方式正常工作。

如何在第二个 while 循环中修改我的 2D tf 变量?
(我使用的是 python 2.7 和 TensorFlow 1.2)

我的代码:

import tensorflow as tf
import numpy as np

tf.reset_default_graph()

BATCH_SIZE = 10
LENGTH_MAX_OUTPUT = 31

it_batch_nr = tf.constant(0)
it_row_nr = tf.Variable(0, dtype=tf.int32)
it_col_nr = tf.constant(0)
cost = tf.constant(0)

it_batch_end = lambda it_batch_nr, cost: tf.less(it_batch_nr, BATCH_SIZE)
it_row_end = lambda it_row_nr, cost_matrix: tf.less(it_row_nr, LENGTH_MAX_OUTPUT+1)

def iterate_batch(it_batch_nr, cost):
    cost_matrix = tf.Variable(np.ones((LENGTH_MAX_OUTPUT+1, LENGTH_MAX_OUTPUT+1)), dtype=tf.float32)
    it_rows, …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 tensorflow

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

标签 统计

python ×1

python-2.7 ×1

tensorflow ×1