Это простой пример, воспроизводящий мою проблему в сети, которую я пытаюсь развернуть.
У меня есть входной слой изображения (который мне нужно поддерживать), а затем плотный слой. , слой 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>
то, что я пытаюсь сделать, не является стандартным. У меня есть набор изображений, и для каждого изображения я хочу найти двоичное изображение того же размера, что если
значение его пикселя равно 1, это означает, что объект существует во входном изображении
Понимание того, есть ли у пикселя какой-либо признак, должно быть получено как из локальной информации (извлеченной с помощью сверточных слоев), так и из глобальной
информации, извлеченной из плотных слоев.
Понимание того, имеет ли пиксель какую-либо особенность, должно быть получено как из локальной информации (извлеченной с помощью сверточных слоев), так и из глобальной
информации, извлеченной из плотных слоев.
Это простой пример, воспроизводящий мою проблему в сети, которую я пытаюсь развернуть. У меня есть входной слой изображения (который мне нужно поддерживать), а затем плотный слой. , слой Conv2D и плотный слой. Идея состоит в том, что входные данные представляют собой изображения 10x10, а метки — изображения 10x10. Вдохновлен моим кодом и этим примером. [code]import numpy as np from keras.models import Model from keras.layers import Input, Conv2D
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()) [/code] Я получаю следующую ошибку: ValueError: Ошибка при проверке цели: ожидалось, что плотность Densent_92 будет иметь форму (10, 10, 10), но получен массив с формой (10, 10, 1) code>
Если я изменю код, ошибка не появится: [code]outputs = Dense(size, activation='sigmoid')(hidden)[/code] с: [code]outputs = Dense(1, activation='sigmoid')(hidden)[/code] Не знаю, насколько Dense(1) вообще действителен и как он допускает выходной сигнал 10x10, как указывает model.summary(): р> [code]_________________________________________________________________ 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 [/code] [b]Изменить (перенесено из старых комментариев):[/b]
[list] [*]то, что я пытаюсь сделать, не является стандартным. У меня есть набор изображений, и для каждого изображения я хочу найти двоичное изображение того же размера, что если значение его пикселя равно 1, это означает, что объект существует во входном изображении
[*]Понимание того, есть ли у пикселя какой-либо признак, должно быть получено как из локальной информации (извлеченной с помощью сверточных слоев), так и из глобальной информации, извлеченной из плотных слоев. [*]Понимание того, имеет ли пиксель какую-либо особенность, должно быть получено как из локальной информации (извлеченной с помощью сверточных слоев), так и из глобальной информации, извлеченной из плотных слоев. [*] p>
Я не понимаю, как 20 фильтров второго слоя Conv2D фильтруют 10 карт объектов, выводимых первым слоем Conv2D. Фильтрует ли каждый из 20 фильтров каждую из 10 карт объектов (выведенных из первого слоя Conv2D)? Если да, то почему выходные данные...
Я столкнулся с необычной проблемой при попытке загрузить предварительно обученные веса в сверточный слой (Conv2D) в модели Keras. Проблема возникает, когда я включаю конвейер увеличения изображения с помощью...
Мне нужно выполнить вычисления для каждой записи матрицы в Rcpp::List. Список содержит произвольную комбинацию плотных и разреженных матриц. Этот список передается в C++ из R. Мой вопрос касается как подходов к реализации, так и эффективности. Моя...
Только что столкнулся с одной проблемой: из keras.models, keras.layers и keras.optimizers говорится, что импорт не может быть разрешен, вы знаете, как я могу исправить это?
import numpy as np
from keras.models import Sequential
from keras.layers...
Проблема
У меня есть подкласс модели tensorflow.keras.Model Seq2Seq с пользовательскими слоями, которая выдает следующую ошибку, когда я пытаюсь сохранить ее через tensorflow.keras.Model .save():
Traceback (most recent call last):
File...