1 Вопрос: Форма вывода Keras имеет дополнительное измерение

вопрос создан в Thu, May 2, 2019 12:00 AM

У меня есть нейронная сеть, которая получает цветное изображение 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():

 вывод из model.summary ()

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

    
1
1 ответ                              1                         

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

https://www.tensorflow.org/api_docs/python /TF /keras /слои /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
        ])

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

    
1
2019-05-02 15: 08: 23Z
  1. Скорее всего, это не сработает. Если вход сети дискриминатора 3-мерный, вы будете подавать данные формы (batch_dimension, 500, 500, 3) (представьте список [image, image, image], где каждое изображение - 500*500*3). Просто прикрепите выход к входу.
    2019-05-02 15: 15: 22Z
  2. @ IonicSolutions, спасибо за ваш вклад, в данный момент я отправляю по одному изображению за раз. Я собираюсь продлить его позже, чтобы получать партии изображений. Это потому, что я изучаю веревки в данный момент, поэтому хочу заняться чем-то пошаговым; но ты прав. вам нужно учитывать размер пакета, если вы обрабатываете пакеты изображений.
    2019-05-04 11: 12: 24Z
источник размещен Вот
Другие вопросы