Конкатенирующие тензоры в тензорном потоке с осью None - PullRequest
0 голосов
/ 11 мая 2019

Я объединяю 2 тензора x и y с формой (64,64,1) и (Нет, 64,64,8)

И я получил это сообщение об ошибке

ValueError: Для слоя Concatenate требуются входные данные с соответствующими формами, за исключением оси concat. Получил формы ввода: [(64, 64, 1), (Нет, 64, 64, 8)]

пожалуйста

x = Conv2D(8, (3, 3), activation='relu', padding='same')(x)
x = MaxPooling2D((2, 2), padding='same')(x)
#the shape of x is (None, 64, 64, 8)

#y is random generated bits tensor
y = tf.convert_to_tensor(np.random.choice([0, 1],(64,64,1)).astype(np.float32()))
z = Concatenate()([x,y],axis=0)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(z)

1 Ответ

1 голос
/ 12 мая 2019

Ошибка на самом деле ясно говорит о том, что не так. Две ошибки в вашем коде, и они не связаны со значением None в вашей форме.

  • Первая фигура имеет только три измерения, а последняя - четыре. Исправьте это, изменив форму и добавив размер 1 к оси = 0.

  • Более проблемной является вторая ошибка. Последние размеры тоже не совпадают. 1 не равно 8.

И то, и другое можно довольно легко исправить, генерируя случайный тензор правильной формы (1, 64, 64, 8) (хотя я не совсем уверен, чего он должен достичь?).

...