train_datagen = ImageDataGenerator(rescale = 1./255,
shear_range = 0.2,
zoom_range = 0.2,
horizontal_flip = True)
training_set = train_datagen.flow_from_directory('images',
target_size = (64, 64),
batch_size = 32,
class_mode = 'categorical')
#Found 27659 images belonging to 3 classes.
classifier = Sequential()
# Step 1 - Convolution
classifier.add(Convolution2D(32, kernel_size=(3,3), strides=(1,1), input_shape = (64, 64, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Convolution2D(64, (3,3), 2, activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Flatten())
classifier.add(Dense(128, activation = 'relu'))
classifier.add(Dense(3, activation = 'softmax'))
classifier.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])
classifier.fit_generator(training_set,
steps_per_epoch = 50,
epochs = 30)
test=image.load_img("./image.png",target_size=(64,64))
test=image.img_to_array(test)
import numpy as np
test=np.expand_dims(test,axis=0)
result=classifier.predict(test)
result
# result is always same as below
#array([[1., 0., 0.]], dtype=float32)
** почему я получаю один и тот же ответ все время, я увеличил эпоху, но все же, почему это действительно происходит, для 2 классов, которые я сделал, но для 3 или более классов это не работает или вы можете дать мне другой код для более чем 3 классов, чтобы предсказать тогда, и другой вопрос, как установить метку на основе нашего каталога, например
images---
-----cat folder
-----dog folder
-----fish folder
, но в маркировке это будет похоже на [0,0 , ..., 222] откуда я знаю, 0 это кошка или собака? **