def main(): """build, train, and test an implementation of the alexnet CNN model in keras. This model is trained and tested on the CIFAR-100 dataset """ # parse arguments args = parse_arguments() save_dir = os.path.join(os.getcwd(), args['d']) if not os.path.isdir(save_dir): os.makedirs(save_dir) model_path = os.path.join(save_dir, args['n']) epochs = int(args['e']) predict_flag = args['p'] show_flag = args['f'] cifar10_label = [ 'airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck' ] # build and train the model if predict_flag == True: if show_flag == True: print(filter) alexnet = AlexNet(10) model = alexnet.build_model(class_count=10) model.load_weights(model_path) print("load complete") (x_train, y_train), (x_test, y_test) = load_dataset() batch_generator = generator_ramdom_one(10, 112, 112, x_test, y_test) test_x, test_y = next(batch_generator) layer = "conv2d_2" show_filter(model, test_x, layer) else: alexnet = AlexNet(10) model = alexnet.build_model(class_count=10) model.load_weights(model_path) print("load complete") (x_train, y_train), (x_test, y_test) = load_dataset() batch_generator = generator_ramdom_one(10, 112, 112, x_test, y_test) test_x, test_y = next(batch_generator) print(cifar10_label[np.argmax(test_y)]) result = model.predict(test_x) print(cifar10_label[np.argmax(result)]) test_img_x = test_x[0, ::-1].copy() plt.imshow(test_img_x / 255, interpolation='nearest') plt.title(cifar10_label[np.argmax(test_y)] + "/" + cifar10_label[np.argmax(result)]) plt.show() else: alexnet = AlexNet(10) model = alexnet.build_model(class_count=10) print(model.summary()) train_model(model, class_count=10, epochs=epochs) # test the model evaluate(model, class_count=10) # save the trained model model.save(model_path) print("Alexnet model saved to: %s" % model_path)
from alexnet import AlexNet alexnet = AlexNet() alexnet.build_model(alexnet.weights, alexnet.biases)