Мой замороженный график в tenorflow выдает ошибку, если я использую разрешение изображения, отличное от того, которое использовалось для обучения в команде "tf.reshape".
Моя сеть полностью свернута, и до того, как мне пришлось использовать команду tf.reshape, я смог использовать входные изображения с разным разрешением в своем коде.
Теперь в моем коде есть функция, которая изменяет тензор (он просто выполняет случайное перемешивание, как в Shufflenet2), и теперь это вызывает ошибку.Я попытался получить форму динамически, используя tf.shape, и он все еще не работает.
def channel_shuffle( x, num_groups=2,name='channelshuf',reuse=False):
with tf.variable_scope(name+'shuffle', reuse=reuse):
#n, h, w, c = x.shape.as_list()
n, h, w, c = tf.shape(x)[0],tf.shape(x)[1],tf.shape(x)[2],tf.shape(x)[3]
x_reshaped = tf.reshape(x, [n, h, w, num_groups, c // num_groups])
x_transposed = tf.transpose(x_reshaped, [0, 1, 2, 4, 3])
output = tf.reshape(x_transposed, [n, h, w, c])
return output
Я получаю следующую ошибку:
InvalidArgumentError (см. Выше для отслеживания): Ввод для изменения формы - это тензор с 3340800 значениями, но запрошенная форма имеет 835200
спасибо!