Как изменить размер 4D-тензора до 5D-тензора со значением «None» с помощью Keras (бэкэнд тензорного потока) - PullRequest
0 голосов
/ 11 марта 2019

Мне нужно изменить тензор, используя значение None, чтобы оно могло динамически изменяться с размером входного изображения.Есть ли возможный способ ???, мне надоели следующие варианты:

Это часть моего кода, где я делаю форму:

Option_1:

x = Conv2D(512, (3, 3), activation='relu', padding='same')(x)

new_dims = (1,None,None,512)

x = Reshape(target_shape= new_dims, name='reshapeconvtolstm')(x)

Я получаю ошибку:

ValueError: Попытка преобразовать 'shape' в тензор и потерпела неудачу.Ошибка: никакие значения не поддерживаются.

Опция_2: я пытался решить ее, используя значение (-1), как описано здесь :

new_dims = (1,-1,-1,512)

x = Reshape(target_shape= new_dims, name='reshapeconvtolstm')(x)

Но я получил ошибку

k: 0 / устройство: GPU: 0 ", send_device_incarnation = 1, тензор_имя =" edge_3691_loss / add ", тензор_тип = DT_FLOAT, _device =" /задание: локальный хост / реплика: 0 / задание: 0 / устройство: ЦП: 0 "] ()]] 2019-03-11 14: 13: 46.806892: W tenorflow / core / framework / op_kernel.cc: 1273] Ошибка OP_REQUIRES приreshape_op.h: 51: Неверный аргумент: только один входной размер может быть -1, но не 2 и 3 Исключение: только один входной размер может быть -1, а не 2 и 3

Option_3:

Кроме того, я попытался настроить его, используя размер моего входного изображения, и попробовал следующие параметры:

new_dims = (1,352,240,512)

x = Reshape(target_shape= new_dims, name='reshapeconvtolstm')(x)

Но я получил ошибку

Ошибка после построения сети: Исключение: вход для изменения формы является тензором со значениями 168960, но запрошенная форма имеет 43253760 [[{{node reshapeconvtolstm / Reshape}} = Reshape [T = DT_FLOAT, Tshape = DT_INT32, _class = ["loc: @ training / Adam / градиенты / reshapeconvtolstm / Reshape_grad / Reshape"], _device = "/ job: localhost / replica: 0 / task: 0 / device: GPU: 0"] (block5_conv3 / Relu-2-0-TransposeNCHWToNHWC-LayoutOptimizer, reshapeconvtolstm / Reshape / shape)]]

Мне нужно настроить его на значение Нет , чтобы оно было динамичным с размером моего ввода икарта объектов.Как в варианте 1, любая подсказка ??

...