для обучения с учетом сети из последнего слоя в керасе - PullRequest
0 голосов
/ 20 декабря 2018

Вот мой код модели:

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 в основном является первым модулем, который я хотел обучить, используя их параметры,Вы также можете проверить бумагу, я надеюсь, теперь вы недооцениваете всю проблему

1 Ответ

0 голосов
/ 20 декабря 2018

Возможно, в вашем генераторе вы возвращаете метки в качестве первого элемента кортежа и входные изображения в качестве второго элемента.Поменяйте местами эти два, и проблема будет решена.

...