def loadModel(pklname): ishape = Conv2DSpace( shape = [48, 48], num_channels = 1 ) nclass = 7 # create layers #nk = [30, 40] nk = [32,20,10] ks = [[8,8],[5,5],[3,3]] ir = [0.05,0.05,0.05] ps = [[4,4],[4,4],[2,2]] pd = [[2,2],[2,2],[2,2]] kn = [0.9,0.9,0.9] layers = DBL_ConvLayers(nk,ks,ir,ps,pd,kn) layer_soft = Softmax( layer_name='y', #max_col_norm = 1.9365, n_classes = nclass, #init_bias_target_marginals=DBL.ds_train, #istdev = .05 irange = .0 ) layers.append(layer_soft) # create DBL_model model = MLP(layers, input_space=ishape) layer_params = cPickle.load(open(pklname)) layer_id = 0 for layer in model.layers: if layer_id < len(layers) - 1: layer.set_weights(layer_params[layer_id][0]) layer.set_biases(layer_params[layer_id][1]) else: layer.set_weights(layer_params[layer_id][1]) layer.set_biases(layer_params[layer_id][0]) layer_id = layer_id + 1 return model
def loadModel(pklname): ishape = Conv2DSpace(shape=[48, 48], num_channels=1) nclass = 7 # create layers #nk = [30, 40] nk = [32, 20, 10] ks = [[8, 8], [5, 5], [3, 3]] ir = [0.05, 0.05, 0.05] ps = [[4, 4], [4, 4], [2, 2]] pd = [[2, 2], [2, 2], [2, 2]] kn = [0.9, 0.9, 0.9] layers = DBL_ConvLayers(nk, ks, ir, ps, pd, kn) layer_soft = Softmax( layer_name='y', #max_col_norm = 1.9365, n_classes=nclass, #init_bias_target_marginals=DBL.ds_train, #istdev = .05 irange=.0) layers.append(layer_soft) # create DBL_model model = MLP(layers, input_space=ishape) layer_params = cPickle.load(open(pklname)) layer_id = 0 for layer in model.layers: if layer_id < len(layers) - 1: layer.set_weights(layer_params[layer_id][0]) layer.set_biases(layer_params[layer_id][1]) else: layer.set_weights(layer_params[layer_id][1]) layer.set_biases(layer_params[layer_id][0]) layer_id = layer_id + 1 return model
def DBL_model_test1(basepath, cutoff=[-1, -1], pklname='', newdata=None): # data ishape = Conv2DSpace(shape=[48, 48], num_channels=1) preproc = [0, 0] nclass = 7 DBL = DBL_model(basepath, nclass, np.append(ishape.shape, 1), preproc, cutoff) # create layers nk = [30] #nk = [40,30,20] ks = [[8, 8], [5, 5], [3, 3]] ir = [0.05, 0.05, 0.05] ps = [[4, 4], [4, 4], [2, 2]] pd = [[2, 2], [2, 2], [2, 2]] kn = [0.9, 0.9, 0.9] layers = DBL_ConvLayers(nk, ks, ir, ps, pd, kn) layer_soft = Softmax( layer_name='y', #max_col_norm = 1.9365, n_classes=nclass, init_bias_target_marginals=DBL.ds_train, #istdev = .05 irange=.0) layers.append(layer_soft) # create DBL_model model = MLP(layers, input_space=ishape) if pklname != '' and os.path.isfile(pklname): # load and rebuild model layer_params = cPickle.load(open(pklname + '.cpu')) layer_id = 0 for layer in model.layers: if layer_id < len(layers) - 1: layer.set_weights(layer_params[layer_id][0]) layer.set_biases(layer_params[layer_id][1]) else: layer.set_weights(layer_params[layer_id][1]) layer.set_biases(layer_params[layer_id][0]) layer_id = layer_id + 1 DBL.model = model DBL.test_raw(newdata) else: algo_term = EpochCounter(500) # number of epoch iteration algo = SGD(learning_rate=0.001, batch_size=500, init_momentum=.5, monitoring_dataset=DBL.ds_valid, termination_criterion=algo_term) DBL.run_model(model, algo) # save the model if pklname != '': layer_params = [] for layer in layers: param = layer.get_params() print param print param[0].get_value() layer_params.append( [param[0].get_value(), param[1].get_value()]) #cPickle.dump(DBL,open(pklname, 'wb')) #cPickle.dump(layer_params, open(pklname + '.cpu', 'wb')) cPickle.dump(layer_params, open(pklname + '.cpu', 'wb')) print DBL.result_valid[1], DBL.result_test[1] return DBL.result_valid[1], DBL.result_test[1]
def DBL_model_test1(basepath,cutoff=[-1,-1],pklname='',newdata=None): # data ishape = Conv2DSpace( shape = [48, 48], num_channels = 1 ) preproc=[0,0] nclass = 7 DBL = DBL_model(basepath,nclass,np.append(ishape.shape,1),preproc,cutoff) # create layers nk = [30] #nk = [40,30,20] ks = [[8,8],[5,5],[3,3]] ir = [0.05,0.05,0.05] ps = [[4,4],[4,4],[2,2]] pd = [[2,2],[2,2],[2,2]] kn = [0.9,0.9,0.9] layers = DBL_ConvLayers(nk,ks,ir,ps,pd,kn) layer_soft = Softmax( layer_name='y', #max_col_norm = 1.9365, n_classes = nclass, init_bias_target_marginals=DBL.ds_train, #istdev = .05 irange = .0 ) layers.append(layer_soft) # create DBL_model model = MLP(layers, input_space=ishape) if pklname!='' and os.path.isfile(pklname): # load and rebuild model layer_params = cPickle.load(open(pklname + '.cpu')) layer_id = 0 for layer in model.layers: if layer_id < len(layers) - 1: layer.set_weights(layer_params[layer_id][0]) layer.set_biases(layer_params[layer_id][1]) else: layer.set_weights(layer_params[layer_id][1]) layer.set_biases(layer_params[layer_id][0]) layer_id = layer_id + 1 DBL.model = model DBL.test_raw(newdata) else: algo_term = EpochCounter(500) # number of epoch iteration algo = SGD(learning_rate = 0.001, batch_size = 500, init_momentum = .5, monitoring_dataset = DBL.ds_valid, termination_criterion=algo_term ) DBL.run_model(model,algo) # save the model if pklname!='': layer_params = [] for layer in layers: param = layer.get_params() print param print param[0].get_value() layer_params.append([param[0].get_value(), param[1].get_value()]) #cPickle.dump(DBL,open(pklname, 'wb')) #cPickle.dump(layer_params, open(pklname + '.cpu', 'wb')) cPickle.dump(layer_params, open(pklname + '.cpu', 'wb')) print DBL.result_valid[1], DBL.result_test[1] return DBL.result_valid[1], DBL.result_test[1]