Exemplo n.º 1
0
elif option == 3:
    image_input = tf.keras.Input(shape=x_train.shape[1:], name='image_input')
    x = MobileNet(weights='imagenet', include_top=False)(image_input)
    x = tf.keras.layers.Flatten(name='flatten')(x)
    x = tf.keras.layers.Dense(4096, activation='relu', name='fc1')(x)
    x = tf.keras.layers.Dense(4096, activation='relu', name='fc2')(x)
    x = tf.keras.layers.Dense(num_classes, activation='softmax', name='predictions')(x)
    model = tf.keras.Model(inputs=image_input, outputs=x)

model.summary()

# Select loss, optimizer, metric
model.compile(loss='categorical_crossentropy',
                                                        optimizer=tf.train.AdamOptimizer(0.001),
                                                        metrics=['accuracy'])

# Train
start = timer()
model.fit(x_train, y_train,
                                        batch_size=batch_size,
                                        epochs=epochs,
                                        verbose=1,
                                        validation_data=(x_test, y_test))
# callbacks=[TensorBoardColabCallback(tbc)]

# Evaluate
score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
timer()-start
Exemplo n.º 2
0
#evaluation_datagen = ImageDataGenerator(rescale=1. / 255)
evaluation_datagen = ImageDataGenerator(
    preprocessing_function=preprocess_input)
evaluation_generator = evaluation_datagen.flow_from_directory(
    validation_data_dir,
    target_size=(img_width, img_height),
    class_mode='categorical',
    shuffle=False)

print('dataset ready')

t = time.time()
print('evaluating...')

test_result = model.evaluate(evaluation_generator, verbose=1)

t = time.time() - t
print('evaluate done')
print('\nruntime: %f s' % t)
print('\nTest loss:', test_result[0])
print('Test top1 accuracy:', test_result[1])
print('Test top5 accuracy:', test_result[2])

#%%

prediction = model.predict(evaluation_generator, verbose=1)
prediction = np.argmax(prediction, axis=1)

show_confusion_matrix(evaluation_generator.classes,
                      prediction,