Создайте слой, который добавит нулевой канал в мой тензор - PullRequest
1 голос
/ 28 марта 2019

Я работаю над DCSCN (нейронной сетью для изображения super-rez) и хочу оценить неопределенность в соответствии с методом Алекса Кендалла и Ярина Гала в статье «Какие неопределенности нам нужны в Байесовском глубоком обучении для компьютерного зрения?»используя Keras.

Для этого мне нужен слой, который принимает тензор формы (?, n, m, 3) и возвращает тензор (?, n, m, 4) с (?, n, м, -1) с нулями.

Я пробовал эту функцию:

def AddChan(**kwargs):

    def layer(x):
        input_shape = K.int_shape(x)
        output_shape = (input_shape[0], input_shape[1],input_shape[2],1)
        z = K.zeros(output_shape)
        res = K.concatenate([x, z], axis=-1)
        return res
    return Lambda(layer, **kwargs)

, которая повышает:

Expected int32, got None of type '_Message' instead.

Я думаю, это потому, что input_shape[0] является динамическимно я не вижу другого способа получить то, что я хочу.

У кого-нибудь есть идея?

Спасибо!

1 Ответ

0 голосов
/ 28 марта 2019

Попробуйте заменить K.int_shape на K.shape, чтобы получить символическую форму тензора или переменной, а не целочисленную форму.

...