こんにちはこれは、画像を分類するためのテンソルフローを使用したKerasバックエンドでCNNを実装するためのコードです 私はどの部分が間違っているのか分かりません。ValueError:ジェネレータの出力は、 `(x、y、sample_weight)タプルまたは`(x、y) `のタプルでなければなりません。見つかった:なし
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Activation, Dropout, Flatten, Dense
from keras import backend as K
img_width, img_height = 224, 224
train_data_dir = '/Users/CK/data/train'
validation_data_dir = '/Users/CK/data/validation'
nb_train_samples = 47000
nb_validation_samples = 47000
epochs = 50
batch_size = 10
if K.image_data_format() == 'channels_first':
input_shape = (3, img_width, img_height)
else:
input_shape = (img_width, img_height, 3)
model = Sequential()
model.add(Conv2D(12,(3,3),input_shape=input_shape))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(12,(3,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(12,(3,3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss='categorical_crossentropy', optimizer = 'adam', metrics=['accuracy'])
train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True
)
test_datagen = ImageDataGenerator(rescale=1./255)
train_generator = train_datagen.flow_from_directory(train_data_dir, target_size = (img_width, img_height),
batch_size=batch_size, class_mode='categorical')
validation_generator = test_datagen.flow_from_directory(validation_data_dir,target_size=(img_width, img_height),
batch_size=batch_size, class_mode='categorical')
model.fit_generator(train_generator,
steps_per_epoch=nb_train_samples// batch_size, epochs=epochs,
validation_data=validation_generator, validation_steps=nb_validation_samples // batch_size)
しかし、私はエラー私は問題を解決するにはどうすればよい
runfile('/Users/CK/Desktop/test.py', wdir='/Users/CK/Desktop')
Found 46827 images belonging to 9 classes.
Found 46827 images belonging to 9 classes.
Epoch 1/50
Exception in thread Thread-7:
Traceback (most recent call last):
File "/Users/CK/anaconda/envs/tensorflow/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/Users/CK/anaconda/envs/tensorflow/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/Users/CK/anaconda/envs/tensorflow/lib/python3.5/site-packages/keras/engine/training.py", line 612, in data_generator_task
generator_output = next(self._generator)
File "/Users/CK/anaconda/envs/tensorflow/lib/python3.5/site-packages/keras/preprocessing/image.py", line 727, in __next__
return self.next(*args, **kwargs)
File "/Users/CK/anaconda/envs/tensorflow/lib/python3.5/site-packages/keras/preprocessing/image.py", line 960, in next
target_size=self.target_size)
File "/Users/CK/anaconda/envs/tensorflow/lib/python3.5/site-packages/keras/preprocessing/image.py", line 318, in load_img
raise ImportError('Could not import PIL.Image. '
ImportError: Could not import PIL.Image. The use of `array_to_img` requires PIL.
Traceback (most recent call last):
File "<ipython-input-13-15de1a62b9cf>", line 1, in <module>
runfile('/Users/CK/Desktop/test.py', wdir='/Users/CK/Desktop')
File "/Users/CK/anaconda/envs/tensorflow/lib/python3.5/site-packages/spyder/utils/site/sitecustomize.py", line 880, in runfile
execfile(filename, namespace)
File "/Users/CK/anaconda/envs/tensorflow/lib/python3.5/site-packages/spyder/utils/site/sitecustomize.py", line 102, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/Users/CK/Desktop/test.py", line 66, in <module>
validation_data=validation_generator, validation_steps=nb_validation_samples // batch_size)
File "/Users/CK/anaconda/envs/tensorflow/lib/python3.5/site-packages/keras/legacy/interfaces.py", line 88, in wrapper
return func(*args, **kwargs)
File "/Users/CK/anaconda/envs/tensorflow/lib/python3.5/site-packages/keras/models.py", line 1110, in fit_generator
initial_epoch=initial_epoch)
File "/Users/CK/anaconda/envs/tensorflow/lib/python3.5/site-packages/keras/legacy/interfaces.py", line 88, in wrapper
return func(*args, **kwargs)
File "/Users/CK/anaconda/envs/tensorflow/lib/python3.5/site-packages/keras/engine/training.py", line 1865, in fit_generator
str(generator_output))
ValueError: output of generator should be a tuple `(x, y, sample_weight)` or `(x, y)`. Found: None
を得ましたか。皆さんがコードを詳細に修正するのを助けていただければ幸いです。 THX
私は最初の問題を修正しましたが、別の値のエラーが発生しました... –
@ScottKimそれはなんですか? – Rahul