Exemplo n.º 1
0
def classifier(model_input, nclass, l2_weight=0.0):
    net = dnn.Dense(100, activation='relu', name='cl')(model_input)
    net = dnn.Dense(nclass, activation='softmax', name='cl_output')(net)
    return net


#%%
def make_trainable(net, val):
    net.trainable = val
    for l in net.layers:
        l.trainable = val


#%% Feature extraction model
main_input = dnn.Input(shape=(n_dim[1], ))
fe = feat_ext(main_input)
fe_size = fe.get_shape().as_list()[1]
fe_model = dnn.Model(main_input, fe, name='fe_model')
# Classifier model
cl_input = dnn.Input(shape=(fe.get_shape().as_list()[1], ))
net = classifier(cl_input, n_class)
cl_model = dnn.Model(cl_input, net, name='classifier')
#%% source model
ms = dnn.Input(shape=(n_dim[1], ))
fes = feat_ext(ms)
nets = classifier(fes, n_class)
source_model = dnn.Model(ms, nets)
source_model.compile(optimizer=optim,
                     loss='categorical_crossentropy',
                     metrics=['accuracy'])
Exemplo n.º 2
0

def feat_ext(main_input, l2_weight=0.0):
    net = dnn.Dense(500, activation='relu', name='fe')(main_input)
    net = dnn.Dense(100, activation='relu', name='feat_ext')(net)
    return net


def classifier(model_input, nclass, l2_weight=0.0):
    net = dnn.Dense(100, activation='relu', name='cl')(model_input)
    net = dnn.Dense(nclass, activation='softmax', name='cl_output')(net)
    return net


#%% Feature extraction as a keras model
main_input = dnn.Input(shape=(n_dim[1], ))
fe = feat_ext(main_input)
fe_size = fe.get_shape().as_list()[1]
# feature extraction model
fe_model = dnn.Model(main_input, fe, name='fe_model')
# Classifier model as a keras model
cl_input = dnn.Input(
    shape=(fe.get_shape().as_list()[1], ))  # input dim for the classifier
net = classifier(cl_input, n_class)
# classifier keras model
cl_model = dnn.Model(cl_input, net, name='classifier')
#%% source model
ms = dnn.Input(shape=(n_dim[1], ))
fes = feat_ext(ms)
nets = classifier(fes, n_class)
source_model = dnn.Model(ms, nets)
    datagen = ImageDataGenerator(width_shift_range=0.2,
                                 height_shift_range=0.2,
                                 horizontal_flip=True)


#%%
def build_filename(noise, alpha, lamda, reg):
    return ('org_jdot_model' + '_' + 'n_' + str(noise) + '_' + 'al_' +
            str(alpha) + '_' + 'lam_' + str(lamda) + '_' + 'reg_' + str(reg) +
            '.hd5')


#%% clean model
from architectures import classifier_dropout, assda_feat_ext, classifier
if len(n_dim) == 4:
    ms = dnn.Input(shape=(n_dim[1], n_dim[2], n_dim[3]))
else:
    ms = dnn.Input(shape=(n_dim[1], ))
from models import get_model
if reconstruction == False:
    clean_model = get_model(data_set,
                            ms,
                            nclass=n_class,
                            classifier=True,
                            drop_out=0.5)
    clean_model.compile(optimizer=optim,
                        loss='categorical_crossentropy',
                        metrics=['accuracy'])
else:
    clean_model = get_model(data_set, ms, nclass=n_class, classifier=True)
    clean_model.compile(