def train(algorithm, args): if algorithm == "mc_svm": # create multiclass SVM model return MultiSVM() elif algorithm == "struct_svm": return StructuredSVM(args.iterations) elif algorithm == "quad_kernel": return StructuredSVM(lambda_fn=lambda x, y: x.dot(y)**2) elif algorithm == "rbf_kernel": return StructuredSVM(lambda_fn=lambda x, y: math.e** (-np.linalg.norm(x - y)**2 / (2000))) elif algorithm == "cnn": # train a neural network nn = CNN((128, 128, 3)) nn.add_convolution_layer(nodes=32, size=(3, 3)) nn.add_relu_layer() nn.add_pool_layer(shape=(1, 1, 2)) nn.add_convolution_layer(nodes=1, size=(3, 3)) nn.add_fc_output_layer(nodes=6) return nn return None