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
#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,