Форма вывода Keras имеет дополнительное измерение - PullRequest
1 голос
/ 02 мая 2019

У меня есть нейронная сеть, которая получает цветное изображение RGB размером 500 на 500 пикселей, а также выводит другое изображение того же размера.

Вот структура моей сети:

Generative_Model = Sequential([ 

   Conv2D(32, (6, 6), padding="same", name="generative", input_shape=(500,500, 3), data_format="channels_last")  

   PReLU(alpha_initializer='zeros'), 

   Conv2D(3, (3, 3), padding="same"), 
   PReLU(alpha_initializer='zeros', name="outp1"), 

])

Проблема, с которой я сталкиваюсь, состоит в том, что выходящие размеры [Нет, 500, 500, 3], хотя я ожидал, что онибыть [500, 500, 3].Я не уверен, откуда берется дополнительное измерение.

Важно, чтобы измерения были удалены перед тем, как покинуть Сеть, так как это подается во вторую состязательную сеть.

Вот что я получаю, когда печатаю model.summary():

output from model.summary()

Я попытался добавить изменение формы в конце, чтобы заставить сеть отбросить последнее измерение, но, похоже, оно не работает, так как форма вывода остается неизменной.то же самое.

1 Ответ

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

Во время разговора с @Dodge в чате он указал мне на следующие документы:

https://www.tensorflow.org/api_docs/python/tf/keras/layers/Reshape

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

#Adversierial network which is comprised of a generator network and a discriminator network.
self.model = Sequential([
   Gen_Input, # Generator Network
   Reshape((500, 500, 3), input_shape=(500, 500, 3)),
   discriminative_model.Input # Discriminator Network
        ])

Это позволиломне изменить форму вывода из графика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...