Я изменил свой вопрос, чтобы лучше объяснить свою проблему:
У меня есть функция: output_image = my_dunc (x), которая должна быть похожа на (1, 4, 4, 1)
Пожалуйста, помогите мне исправить ошибку в этой части:
out = tf.Variable(tf.zeros([1, 4, 4, 3]))
index = tf.constant(0)
def condition(index):
return tf.less(index, tf.subtract(tf.shape(x)[3], 1))
def body(index):
out[:, :, :, index].assign(my_func(x[:, :, :, index]))
return tf.add(index, 1), out
out = tf.while_loop(condition, body, [index])
ValueError: две структуры не имеют одинаковую вложенную структуру.
Первая структура: type = list str = []
Вторая структура: тип = список str=[<tf.Tensor 'while_10/Add_3:0' shape=() dtype=int32>, <tf.Variable 'Variable_2:0' shape=(1, 4, 4, 3) dtype=float32_ref>]
Более конкретно: две структуры не имеют одинаковое количество элементов. Первая структура: type=list str=[<tf.Tensor 'while_10/Identity:0' shape=() dtype=int32>]
. Вторая структура: type=list str=[<tf.Tensor 'while_10/Add_3:0' shape=() dtype=int32>, <tf.Variable 'Variable_2:0' shape=(1, 4, 4, 3) dtype=float32_ref>]
Я проверил свой код и могу получить результат из out = my_func(x[:, :, :, i])
с другими значениями для i, а также while_loop работает, когда я комментирую строку out[:, :, :, index].assign(my_func(x[:, :, :, index]))
. Что-то не так в этой линии.