Как построить двухветвевую модель Keras с плотными слоями и слоями Conv2D?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как построить двухветвевую модель Keras с плотными слоями и слоями Conv2D?

Сообщение Anonymous »

Это простой пример, воспроизводящий мою проблему в сети, которую я пытаюсь развернуть.
У меня есть входной слой изображения (который мне нужно поддерживать), а затем плотный слой. , слой Conv2D и плотный слой.
Идея состоит в том, что входные данные представляют собой изображения 10x10, а метки — изображения 10x10. Вдохновлен моим кодом и этим примером.

Код: Выделить всё

import numpy as np
from keras.models import Model
from keras.layers import Input, Conv2D

#Building model
size=10
a = Input(shape=(size,size,1))
hidden = Dense(size)(a)
hidden = Conv2D(kernel_size = (3,3), filters = size*size, activation='relu', padding='same')(hidden)
outputs = Dense(size, activation='sigmoid')(hidden)

model = Model(inputs=a, outputs=outputs)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

#Create random data and accounting for 1 channel of data
n_images=55
data = np.random.randint(0,2,(n_images,size,size,1))
labels = np.random.randint(0,2,(n_images,size,size,1))

#Fit model
model.fit(data, labels, verbose=1, batch_size=10, epochs=20)

print(model.summary())
Я получаю следующую ошибку: ValueError: Ошибка при проверке цели: ожидалось, что плотность Densent_92 будет иметь форму (10, 10, 10), но получен массив с формой (10, 10, 1)
code>

Если я изменю код, ошибка не появится:

Код: Выделить всё

outputs = Dense(size, activation='sigmoid')(hidden)
с:

Код: Выделить всё

outputs = Dense(1, activation='sigmoid')(hidden)
Не знаю, насколько Dense(1) вообще действителен и как он допускает выходной сигнал 10x10, как указывает model.summary():
р>

Код: Выделить всё

_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
input_26 (InputLayer)        (None, 10, 10, 1)         0
_________________________________________________________________
dense_93 (Dense)             (None, 10, 10, 10)        20
_________________________________________________________________
conv2d_9 (Conv2D)            (None, 10, 10, 100)       9100
_________________________________________________________________
dense_94 (Dense)             (None, 10, 10, 1)         101
=================================================================
Total params: 9,221
Trainable params: 9,221
Non-trainable params: 0
_________________________________________________________________
None
Изменить (перенесено из старых комментариев):
  • то, что я пытаюсь сделать, не является стандартным. У меня есть набор изображений, и для каждого изображения я хочу найти двоичное изображение того же размера, что если
    значение его пикселя равно 1, это означает, что объект существует во входном изображении
  • Понимание того, есть ли у пикселя какой-либо признак, должно быть получено как из локальной информации (извлеченной с помощью сверточных слоев), так и из глобальной
    информации, извлеченной из плотных слоев.
  • Понимание того, имеет ли пиксель какую-либо особенность, должно быть получено как из локальной информации (извлеченной с помощью сверточных слоев), так и из глобальной
    информации, извлеченной из плотных слоев.
  • p>


Подробнее здесь: https://stackoverflow.com/questions/523 ... v2d-layers
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как метод Conv2D фильтрует карты объектов, выводимые другим слоем Conv2D?
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Keras: слой Conv2D не принимает веса после конвейера увеличения изображения
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Работа с Rcpp::List матриц с плотными или разреженными типами матриц
    Anonymous » » в форуме C++
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Из keras.models, keras.layers и keras.optimizers импорт не разрешен.
    Anonymous » » в форуме Python
    0 Ответы
    91 Просмотры
    Последнее сообщение Anonymous
  • Подкласс Keras Model HDF5 (.keras). Ошибка сохранения формата при использовании tf.keras.Model.save() — TypeError: непод
    Anonymous » » в форуме Python
    0 Ответы
    50 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»