#python #variables #feature-extraction #transfer-learning #imagedata
Вопрос:
Я работаю над обучением передаче для задачи классификации изображений. Обучающий генератор выглядит следующим образом:
train_generator = train_datagen.flow_from_directory(
'/home/idu/Desktop/COV19D/train/',
color_mode = "grayscale",
target_size=(512, 512), # All images are 512 * 512
batch_size=batch_size,
classes = ['covid','non-covid'],
class_mode='binary')
Переданный код модели выглядит следующим образом:
SIZE = 512
VGG_model = VGG16(include_top=False, weights=None, input_shape=(SIZE, SIZE, 1))
for layer in VGG_model.layers:
layer.trainable = False
feature_extractor=VGG_model.predict(train_generator)
Последняя команда выдает ошибку:
Traceback (most recent call last):
File "<ipython-input-28-b9bad68819ec>", line 1, in <module>
feature_extractor=VGG_model.predict(train_generator)
File "/home/idu/.local/lib/python3.6/site-packages/keras/engine/training.py", line 1681, in predict
steps_per_execution=self._steps_per_execution)
File "/home/idu/.local/lib/python3.6/site-packages/keras/engine/data_adapter.py", line 1348, in get_data_handler
return DataHandler(*args, **kwargs)
File "/home/idu/.local/lib/python3.6/site-packages/keras/engine/data_adapter.py", line 1150, in __init__
model=model)
File "/home/idu/.local/lib/python3.6/site-packages/keras/engine/data_adapter.py", line 793, in __init__
peek, x = self._peek_and_restore(x)
File "/home/idu/.local/lib/python3.6/site-packages/keras/engine/data_adapter.py", line 850, in _peek_and_restore
peek = next(x)
File "/home/idu/.local/lib/python3.6/site-packages/keras_preprocessing/image/iterator.py", line 104, in __next__
return self.next(*args, **kwargs)
File "/home/idu/.local/lib/python3.6/site-packages/keras_preprocessing/image/iterator.py", line 116, in next
return self._get_batches_of_transformed_samples(index_array)
File "/home/idu/.local/lib/python3.6/site-packages/keras_preprocessing/image/iterator.py", line 231, in _get_batches_of_transformed_samples
x = img_to_array(img, data_format=self.data_format)
File "/home/idu/.local/lib/python3.6/site-packages/keras_preprocessing/image/utils.py", line 309, in img_to_array
x = np.asarray(img, dtype=dtype)
File "/home/idu/.local/lib/python3.6/site-packages/numpy/core/_asarray.py", line 83, in asarray
return array(a, dtype, copy=False, order=order)
TypeError: __array__() takes 1 positional argument but 2 were given
Как я могу преодолеть эту ошибку, чтобы выполнить вычитание функции?
Спасибо.
Комментарии:
1. Это строка с ошибкой:
feature_extractor=VGG_model.predict(train_generator)
2. Ошибка заключается в том, что вам не нужно передавать аргументы или только аргументы ключевых слов. Вам придется прочитать документы, чтобы понять, что именно.
3. Согласен с @MadPhysicist . Ошибка заключается в том, что где-то внутри есть вызов, в
img_to_array()
котором отсутствуетdtype
аргумент. Я предполагаю, что вам нужно будет передатьdtype=float
dtype=int
аргумент » или «в поле**kwargs
«оtrain_datagen.flow_from_directory()
«.4. Спасибо вам за ваши объяснения и помощь. Я добавил аргумент dtype (dtype=int) и (dtype=float) с помощью train_datagen = ImageDataGenerator(масштаб=1./255, dtype=int). поток из каталога не принимает аргумента dtype, по крайней мере, так я нашел. Проблема еще не решена?