Skip to content
Snippets Groups Projects
Commit 8bdf07cf authored by Luc Giffon's avatar Luc Giffon
Browse files

continue setting up experiment keras end to end

add 1 gamma parameter to grid search
script now supports mutliple kernels instead of only chi2
parent ff19afa1
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,7 @@ all:
dense:
deepfried:
deepstrom_no_gamma:
# deepstrom_gamma:
deepstrom_gamma:
base:
epoch_numbers: {"-e": [200]}
......@@ -18,7 +18,7 @@ dense:
repr_dim: {"-D": [16, 64, 128, 1024]}
gamma:
gamma: {"-g": [0.001, 0.005, 0.01, 0.05]}
gamma: {"-g": [0.001, 0.005, 0.01, 0.05, 0.1]}
deepfried:
network: ["deepfriedconvnet"]
......
......@@ -62,7 +62,7 @@ from keras.optimizers import Adam
from keras.preprocessing.image import ImageDataGenerator
import skluc.main.data.mldatasets as dataset
from skluc.main.keras_.kernel import keras_chi_square_CPD
from skluc.main.keras_.kernel import map_kernel_name_function
# from skluc.main.keras_.kernel_approximation.nystrom_layer import DeepstromLayerEndToEnd
from skluc.main.keras_.kernel_approximation.fastfood_layer import FastFoodLayer
from skluc.main.keras_.models import build_lenet_model, build_vgg19_model_glorot
......@@ -262,7 +262,18 @@ def main(paraman: ParameterManagerMain, resman, printman):
repr_sub = convnet_model(input_subsample_concat)
kernel_layer = Lambda(lambda *args, **kwargs: keras_chi_square_CPD(*args, epsilon=1e-8, **kwargs), output_shape=lambda shapes: (shapes[0][0], paraman["--nys-size"]))
if paraman["kernel"] == "linear":
kernel_function = lambda *args, **kwargs: map_kernel_name_function["linear"](*args, **kwargs, normalize=True, **paraman["kernel_dict"])
elif paraman["kernel"] == "rbf":
kernel_function = lambda *args, **kwargs: map_kernel_name_function["rbf"](*args, **kwargs, tanh_activation=True, normalize=True, **paraman["kernel_dict"])
elif paraman["kernel"] == "chi2_cpd":
kernel_function = lambda *args, **kwargs: map_kernel_name_function["chi2_cpd"](*args, **kwargs, epsilon=1e-8, tanh_activation=True, normalize=True, **paraman["kernel_dict"])
elif paraman["kernel"] == "chi2_exp_cpd":
kernel_function = lambda *args, **kwargs: map_kernel_name_function["chi2_exp_cpd"](*args, **kwargs, epsilon=1e-8, tanh_activation=True, normalize=True, **paraman["kernel_dict"])
else:
raise NotImplementedError(f"unknown kernel function {paraman['kernel']}")
kernel_layer = Lambda(kernel_function, output_shape=lambda shapes: (shapes[0][0], paraman["--nys-size"]))
kernel_vector = kernel_layer([repr_x, repr_sub])
input_classifier = Dense(paraman["--nys-size"], use_bias=False, activation='linear')(kernel_vector) # 512 is the output dim of convolutional layers
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment