Я пытаюсь обучить мелкий CNN, который можно найти здесь (ссылка на строку # по ошибке не будет точно соответствовать)
https://github.com/whydna/Deep-Learning-For-Computer-Vision/blob/master/shallownet_animals.py
Но я получаю следующую ошибку при запуске
$ python shallownet_animals.py --dataset ../datasets/animals/
Using TensorFlow backend.
[INFO] loading images...
Traceback (most recent call last):
File "shallownet_animals.py", line 35, in <module>
(data, labels) = sdl.load(imagePaths, verbose=500)
File "/home/swartz/dev/dl4cv/SB_Code/chapter12-first_cnn/pyimagesearch/datasets/simpledatasetloader.py", line 34, in load
image = p.preprocess(image)
File "/home/swartz/dev/dl4cv/SB_Code/chapter12-first_cnn/pyimagesearch/preprocessing/imagetoarraypreprocessor.py", line 12, in preprocess
return img_to_array(image, data_format=self.dataFormat)
File "/usr/lib/python2.7/dist-packages/keras_preprocessing/image/utils.py", line 278, in img_to_array
raise ValueError('Unknown data_format: %s' % data_format)
ValueError: Unknown data_format: None
Строка iap = ImageToArrayPreprocessor()
устанавливает формат данных по умолчанию None
в своем init:
class ImageToArrayPreprocessor:
def __init__(self, dataFormat=None):
# store the image data format
self.dataFormat = dataFormat
Так что, похоже, проблема. Однако, из книги, которую я читаю, это сделано специально, чтобы Keras использовал формат данных по умолчанию, найденный в файле keras.json, который в моем случае "image_data_format": "channels_last"
. Моя версия Keras - 2.2.4. Есть идеи, почему это не работает? Любая помощь будет принята с благодарностью!
(Также: я получил этот файл для работы с предварительно настроенным загрузчиком CIFAR-10, cifar10.load_data()
, поэтому у меня есть некоторые доказательства жизни)