Вот мой код модели:
Model=Sequential()
input_img = Input(shape=(180,180,3)) # adapt this if using channels_first` image data format
x = Conv2D(64, (3, 3), padding='valid')(input_img)
x = Conv2D(64, (3, 3), padding='valid',strides=2)(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
y = Conv2D(64, (3, 3), padding='valid')(x)
model=Model(input_img,y)
Часть генератора приведена ниже
train_datagen = ImageDataGenerator(rescale=1./255)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator=train_datagen.flow_from_directory(
'\Dipti\medical_image_comp',
target_size=(180,180),
batch_size=128,
class_mode=None)
validation_generator = test_datagen.flow_from_directory(
'D:\Dipti\medical_image_comp\scale0',
target_size=(180,180),
batch_size=128,
class_mode=None)
При установке этой простой сети через:
history=model.fit_generator(
train_generator,
epochs=100,
steps_per_epoch=training_samples/batch_size,
validation_data=validation_generator,
validation_steps=testing_samples/batch_size)
The following error occurs:
Эпоха1/100
ValueError Traceback (most recent
call last)
<ipython-input-41-bf2c0dd3bbcf> in <module>()
4 epochs=100,
5 validation_data=validation_generator,
- ---> 6 validation_steps = testing_samples / batch_size)
~\Anaconda3\lib\site-packages\keras\legacy\interfaces.py in
wrapper(*args, **kwargs)
89 warnings.warn('Update your `' + object_name +
90 '` call to the Keras 2 API: ' + signature, stacklevel=2)
- -> 91 функция возврата (* args, ** kwargs) 92 оболочки._original_function = func 93 вернуть оболочку
~ \ Anaconda3 \ lib \ site-packages \ keras \ models.py в fit_generator (собственный, генератор, steps_per_epoch, эпох, многословный, обратные вызовы, validation_data, validation_steps, class_ize, max_queue), работники, use_multiprocessing, shuffle, initial_epoch) 1254 use_multiprocessing = use_multiprocessing, 1255 shuffle = shuffle, -> 1256 initial_epoch = initial_epoch) 1257 1258 @ interfaces.legacy_generator_methods_support * 1018 \ lib-keinlegacy \ interfaces.py в оболочке (* args, ** kwargs) 89 warnings.warn ('Обновите ' + object_name +
90 '
вызов API Keras 2:' + signature, stacklevel = 2) ---> 91 return func (*args, ** kwargs) 92 wrapper._original_function = func 93 return wrapper
~\Anaconda3\lib\site-packages\keras\engine\training.py in
fit_generator(self, generator, steps_per_epoch, epochs, verbose,
callbacks, validation_data, validation_steps, class_weight,
max_queue_size, workers, use_multiprocessing, shuffle,
initial_epoch)
2160 'a tuple `(x,
y, sample_weight)` '
2161 'or `(x,
y)`. Found: ' +
-> 2162
str(generator_output))
2163 # build batch logs
2164 batch_logs = {}
ValueError: Output of generator should be a tuple `(x, y,
sample_weight)` or `(x, y)`. Found: [[[[1.
0.91372555 1. ]
[0.8980393 0.78823537 0.87843144]
[0.8705883 0.7607844 0.85098046]
...
[0.8313726 0.7411765 0.8117648 ]
[0.85098046 0.7607844 0.8313726 ]
[0.83921576 0.7490196 0.8196079 ]]
[[0.9333334 0.8352942 0.9215687 ]
[0.8980393 0.8000001 0.8862746 ]
[0.9294118 0.8313726 0.9176471 ]
...
[0.7803922 0.6901961 0.7607844 ]
[0.8196079 0.7294118 0.8000001 ]
[0.8588236 0.7686275 0.83921576]]
[[0.9176471 0.8235295 0.909804 ]
[0.854902 0.7607844 0.8470589 ]
[0.8745099 0.7803922 0.86666673]
...
[0.7686275 0.6784314 0.7490196 ]
[0.79215693 0.7019608 0.7725491 ]
[0.83921576 0.7490196 0.8196079 ]]
...
[[0.81568635 0.6784314 0.7725491 ]
[0.80392164 0.6666667 0.7607844 ]
[0.8196079 0.68235296 0.77647066]
...
[0.8470589 0.6784314 0.78823537]
[0.8352942 0.6666667 0.77647066]
[0.8745099 0.7058824 0.81568635]]
[[0.7686275 0.6313726 0.7254902 ]
[0.7607844 0.62352943 0.7176471 ]
[0.79215693 0.654902 0.7490196 ]
...
[0.8431373 0.6745098 0.7843138 ]
[0.83921576 0.67058825 0.7803922 ]
[0.882353 0.7137255 0.8235295 ]]
[[0.8235295 0.6862745 0.7725491 ]
[0.7725491 0.63529414 0.72156864]
[0.78823537 0.6509804 0.74509805]
...
[0.8588236 0.6901961 0.8000001 ]
[0.86666673 0.69803923 0.8078432 ]
[0.8862746 0.7176471 0.82745105]]]
[[[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
...
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]]
[[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
...
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]]
[[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
...
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]]
...
[[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
...
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]]
[[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
...
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]]
[[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
...
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]
[0.8705883 0.8705883 0.8705883 ]]]
[[[0.92549026 0.82745105 0.90196085]
[0.89019614 0.7843138 0.8588236 ]
[0.9176471 0.8078432 0.8941177 ]
...
[0.7960785 0.47450984 0.6627451 ]
[0.76470596 0.43529415 0.627451 ]
[0.77647066 0.44705886 0.6392157 ]]
[[0.9058824 0.8000001 0.8745099 ]
[0.8941177 0.7803922 0.8588236 ]
[0.86666673 0.7411765 0.8313726 ]
...
[0.80392164 0.48235297 0.67058825]
[0.79215693 0.47058827 0.65882355]
[0.8588236 0.5294118 0.72156864]]
[[0.83921576 0.7254902 0.80392164]
[0.87843144 0.75294125 0.8352942 ]
[0.8235295 0.6901961 0.7843138 ]
...
[0.8078432 0.48627454 0.6745098 ]
[0.80392164 0.48235297 0.67058825]
[0.8862746 0.5647059 0.75294125]]
...
Я не могу получить для такой простой сети. Я уже построил много моделей с той же концепцией, но здесь эта сеть не в состоянииПожалуйста, предложите мне способ обучить такую простую сеть, используя концепцию потока из dsirectory, используя оптимизатор Adam и MSE в качестве функции потерь.Я надеюсь, что вы получаете мою точку зрения
Сэр, через эту небольшую сеть, я просто хотел уменьшить размер своих изображений. После обучения этой сети я должен применить выходные данные этой сети к кодеку изображения и далееЯ должен сделать обратный процесс, чтобы сгенерировать восстановленное изображение. Затем для целей тестирования я должен сравнить исходное и сравниваемое изображение. Так как это в основном задача сжатия, уменьшение размера изображений, так что в особенности моей работе не нужны меткикак в случае классификации и регрессии. Я хотел воспроизвести результаты статьи под названием «Сквозная структура сжатия с использованием сверточных нейронных сетей», и эта сеть samll в основном является первым модулем, который я хотел обучить, используя их параметры,Вы также можете проверить бумагу, я надеюсь, теперь вы недооцениваете всю проблему