Commit e5108393c82cba7f29adcc24d27a17368a398e7e
1 parent
dcac9f70ba
Exists in
master
replace du mlp.py et ajout de la mmf_experience
Showing 13 changed files with 490 additions and 289 deletions Side-by-side Diff
LDA/00-mmf_make_features.py
... | ... | @@ -11,14 +11,16 @@ |
11 | 11 | |
12 | 12 | input_dir = sys.argv[1] # Dossier de premire niveau contient ASR et TRS |
13 | 13 | level = sys.argv[2] # taille de LDA ( -5) voulu |
14 | +output_dir = sys.argv[3] | |
14 | 15 | |
15 | 16 | lb=LabelBinarizer() |
16 | 17 | #y_train=lb.fit_transform([utils.select(ligneid) for ligneid in origin_corps["LABEL"]["TRAIN"]]) |
17 | 18 | |
18 | 19 | |
19 | -data = shelve.open("{}/mmf_{}.shelve".format(input_dir,level)) | |
20 | -data["LABEL"]= {"LDA":{}} | |
21 | -for mod in ["ASR", "TRS" ] | |
20 | +data = shelve.open("{}/mmf_{}.shelve".format(output_dir,level),writeback=True) | |
21 | +data["LABEL"]= {} | |
22 | +data["LDA"] = {"ASR":{},"TRS":{}} | |
23 | +for mod in ["ASR", "TRS" ]: | |
22 | 24 | train = pandas.read_table("{}/{}/train_{}.ssv".format(input_dir, mod, level), sep=" ", header=None ) |
23 | 25 | dev = pandas.read_table("{}/{}/dev_{}.ssv".format(input_dir, mod, level), sep=" ", header=None ) |
24 | 26 | test = pandas.read_table("{}/{}/test_{}.ssv".format(input_dir, mod, level), sep=" ", header=None ) |
... | ... | @@ -29,10 +31,12 @@ |
29 | 31 | lb.fit(y_train) |
30 | 32 | data["LABEL"][mod]={"TRAIN":lb.transform(y_train),"DEV":lb.transform(y_dev), "TEST": lb.transform(y_test)} |
31 | 33 | |
32 | - data["LDA"][mod]={} | |
33 | - data["LDA"][mod]["TRAIN"]=train.iloc[:,1:].values | |
34 | - data["LDA"][mod]["DEV"]=dev.iloc[:,1:].values | |
35 | - data["LDA"][mod]["TEST"]=test.iloc[:,1:].values | |
34 | + # data["LDA"][mod]={'ASR':[]} | |
35 | + print data["LDA"][mod] | |
36 | + print train.values | |
37 | + data["LDA"][mod]["TRAIN"]=train.iloc[:,1:-1].values | |
38 | + data["LDA"][mod]["DEV"]=dev.iloc[:,1:-1].values | |
39 | + data["LDA"][mod]["TEST"]=test.iloc[:,1:-1].values | |
36 | 40 | |
37 | 41 | data.sync() |
38 | 42 | data.close() |
LDA/04a-mmdf.py
LDA/04b-mmf_mini_ae.py
... | ... | @@ -25,87 +25,71 @@ |
25 | 25 | #['ASR', 'TRS', 'LABEL'] |
26 | 26 | # In[6]: |
27 | 27 | |
28 | +json_conf =json.load(open(sys.argv[3])) | |
29 | +ae_conf = json_conf["ae"] | |
28 | 30 | |
29 | -hidden_size=[ 100 , 50, 100 ] | |
30 | -input_activation="tanh" | |
31 | -output_activation="tanh" | |
32 | -loss="mse" | |
33 | -epochs=1000 | |
34 | -batch=1 | |
35 | -patience=60 | |
36 | -do_do=[False] | |
37 | -sgd = Adam(lr=0.000001)#SGD(lr=0.00001,nesterov=False) #'rmsprop'# Adam(lr=0.00001)#SGD(lr=0.001, momentum=0.9, nesterov=True) | |
31 | +hidden_size= ae_conf["hidden_size"] | |
32 | +input_activation=ae_conf["input_activation"] | |
33 | +output_activation=ae_conf["output_activation"] | |
34 | +loss=ae_conf["loss"] | |
35 | +epochs=ae_conf["epochs"] | |
36 | +batch=ae_conf["batch"] | |
37 | +patience=ae_conf["patience"] | |
38 | +do_do=ae_conf["do"] | |
39 | +try: | |
40 | + k = ae_conf["sgd"] | |
41 | + if ae_conf["sgd"]["name"] == "adam": | |
42 | + sgd = Adam(lr=ae_conf["sgd"]["lr"])#SGD(lr=0.00001,nesterov=False) #'rmsprop'# Adam(lr=0.00001)#SGD(lr=0.001, momentum=0.9, nesterov=True) | |
43 | + elif ae_conf["sgd"]["name"] == "sgd": | |
44 | + sgd = SGD(lr=ae_conf["sgd"]["lr"]) | |
45 | +except: | |
46 | + sgd = ae_conf["sgd"] | |
38 | 47 | |
48 | +mlp_conf = json_conf["mlp"] | |
49 | +mlp_h = mlp_conf["hidden_size"] | |
50 | +mlp_loss = mlp_conf["loss"] | |
51 | +mlp_dropouts = mlp_conf["do"] | |
52 | +mlp_epochs = mlp_conf["epochs"] | |
53 | +mlp_batch_size = mlp_conf["batch"] | |
54 | +mlp_input_activation=mlp_conf["input_activation"] | |
55 | +mlp_output_activation=mlp_conf["output_activation"] | |
39 | 56 | |
57 | +try: | |
58 | + k = mlp_conf["sgd"] | |
59 | + if mlp_conf["sgd"]["name"] == "adam": | |
60 | + mlp_sgd = Adam(lr=mlp_conf["sgd"]["lr"])#SGD(lr=0.00001,nesterov=False) #'rmsprop'# Adam(lr=0.00001)#SGD(lr=0.001, momentum=0.9, nesterov=True) | |
61 | + elif mlp_conf["sgd"]["name"] == "sgd": | |
62 | + mlp_sgd = SGD(lr=mlp_conf["sgd"]["lr"]) | |
63 | +except: | |
64 | + mlp_sgd = mlp_conf["sgd"] | |
40 | 65 | |
41 | -mlp_h = [ 150 ,150 ,150 ] | |
42 | -mlp_loss = "categorical_crossentropy" | |
43 | -mlp_dropouts = [] | |
44 | -mlp_sgd = Adam(lr=0.0001) | |
45 | -mlp_epochs = 2000 | |
46 | -mlp_batch_size = 8 | |
47 | -mlp_output_activation="softmax" | |
48 | 66 | |
49 | -try : | |
50 | - sgd_repr=sgd.get_config()["name"] | |
51 | -except AttributeError : | |
52 | - sgd_repr=sgd | |
53 | - | |
54 | -try : | |
55 | - mlp_sgd_repr=mlp_sgd.get_config()["name"] | |
56 | -except AttributeError : | |
57 | - mlp_sgd_repr=mlp_sgd | |
58 | - | |
59 | - | |
60 | -params={ "h1" : "_".join([ str(x) for x in hidden_size ]), | |
61 | - "inside_activation" : input_activation, | |
62 | - "output_activation" : output_activation, | |
63 | - "do_dropout": "_".join([str(x) for x in do_do]), | |
64 | - "loss" : loss, | |
65 | - "epochs" : epochs , | |
66 | - "batch_size" : batch, | |
67 | - "patience" : patience, | |
68 | - "sgd" : sgd_repr, | |
69 | - "mlp_h ": "_".join([str(x) for x in mlp_h]), | |
70 | - "mlp_loss ": mlp_loss, | |
71 | - "mlp_dropouts ": "_".join([str(x) for x in mlp_dropouts]), | |
72 | - "mlp_sgd ": mlp_sgd_repr, | |
73 | - "mlp_epochs ": mlp_epochs, | |
74 | - "mlp_batch_size ": mlp_batch_size, | |
75 | - "mlp_output" : mlp_output_activation | |
76 | - } | |
77 | -name = "_".join([ str(x) for x in params.values()]) | |
67 | +name = json_conf["name"] | |
78 | 68 | try: |
79 | 69 | os.mkdir("{}/{}".format(in_dir,name)) |
80 | 70 | except: |
81 | 71 | pass |
82 | 72 | db = shelve.open("{}/{}/ae_model.shelve".format(in_dir,name),writeback=True) |
83 | -db["params"] = params | |
84 | 73 | db["LABEL"]=infer_model["LABEL"] |
85 | 74 | # |
86 | -json.dump(params, | |
87 | - open("{}/{}/ae_model.json".format(in_dir,name),"w"), | |
88 | - indent=4) | |
89 | - | |
90 | 75 | keys = ["ASR","TRS"] |
91 | 76 | |
92 | 77 | db["AE"] = {} |
93 | 78 | db["LDA"] = {} |
94 | 79 | for mod in keys : |
95 | - print mod | |
96 | 80 | db["LDA"][mod] = train_mlp(infer_model["LDA"][mod]["TRAIN"],infer_model["LABEL"][mod]["TRAIN"], |
97 | 81 | infer_model["LDA"][mod]["DEV"],infer_model["LABEL"][mod]["DEV"], |
98 | 82 | infer_model["LDA"][mod]["TEST"],infer_model["LABEL"][mod]["TEST"], |
99 | 83 | mlp_h ,sgd=mlp_sgd, |
100 | 84 | epochs=mlp_epochs, |
101 | 85 | batch_size=mlp_batch_size, |
102 | - input_activation=input_activation, | |
86 | + input_activation=mlp_input_activation, | |
103 | 87 | output_activation=mlp_output_activation, |
104 | 88 | dropouts=mlp_dropouts, |
105 | 89 | fit_verbose=0) |
106 | 90 | |
107 | 91 | res=train_ae(infer_model["LDA"][mod]["TRAIN"],infer_model["LDA"][mod]["DEV"],infer_model["LDA"][mod]["TEST"], |
108 | - hidden_size,patience = params["patience"],sgd=sgd, | |
92 | + hidden_size,patience = patience,sgd=sgd, | |
109 | 93 | dropouts=do_do,input_activation=input_activation,output_activation=output_activation, |
110 | 94 | loss=loss,epochs=epochs,batch_size=batch,verbose=0) |
111 | 95 | mlp_res_list=[] |
... | ... | @@ -115,7 +99,7 @@ |
115 | 99 | layer[2],infer_model["LABEL"][mod]["TEST"], |
116 | 100 | mlp_h,loss=mlp_loss,dropouts=mlp_dropouts,sgd=mlp_sgd,epochs=mlp_epochs, |
117 | 101 | output_activation=mlp_output_activation, |
118 | - input_activation=input_activation, | |
102 | + input_activation=mlp_input_activation, | |
119 | 103 | batch_size=mlp_batch_size,fit_verbose=0)) |
120 | 104 | db["AE"][mod]=mlp_res_list |
121 | 105 | |
... | ... | @@ -126,7 +110,7 @@ |
126 | 110 | res = train_ae(infer_model["LDA"][mod]["TRAIN"], |
127 | 111 | infer_model["LDA"][mod]["DEV"], |
128 | 112 | infer_model["LDA"][mod]["TEST"], |
129 | - hidden_size,dropouts=do_do,patience = params["patience"], | |
113 | + hidden_size,dropouts=do_do,patience = patience, | |
130 | 114 | sgd=sgd,input_activation=input_activation,output_activation=output_activation,loss=loss,epochs=epochs, |
131 | 115 | batch_size=batch, |
132 | 116 | y_train=infer_model["LDA"][mod]["TRAIN"], |
LDA/04c-mmf_sae.py
... | ... | @@ -25,70 +25,70 @@ |
25 | 25 | in_dir = sys.argv[1] |
26 | 26 | #['ASR', 'TRS', 'LABEL'] |
27 | 27 | # In[6]: |
28 | +json_conf =json.load(open(sys.argv[3])) | |
29 | +sae_conf = json_conf["sae"] | |
28 | 30 | |
31 | +hidden_size= sae_conf["hidden_size"] | |
32 | +input_activation=sae_conf["input_activation"] | |
33 | +output_activation=sae_conf["output_activation"] | |
34 | +loss=sae_conf["loss"] | |
35 | +epochs=sae_conf["epochs"] | |
36 | +batch=sae_conf["batch"] | |
37 | +patience=sae_conf["patience"] | |
38 | +do_do=sae_conf["do"] | |
29 | 39 | |
30 | -hidden_size=[ 100, 80, 50 , 20 ] | |
31 | -input_activation="relu" | |
32 | -output_activation="relu" | |
33 | -loss="mse" | |
34 | -epochs=3000 | |
35 | -batch=1 | |
36 | -patience=20 | |
37 | -do_do=[ 0 ] * len(hidden_size) | |
38 | -sgd = Adam(lr=0.0001)#SGD(lr=0.00001,nesterov=False) #'rmsprop'# Adam(lr=0.00001)#SGD(lr=0.001, momentum=0.9, nesterov=True) | |
39 | -try : | |
40 | - sgd_repr=sgd.get_config()["name"] | |
41 | -except AttributeError : | |
42 | - sgd_repr=sgd | |
40 | +try: | |
41 | + k = sae_conf["sgd"] | |
42 | + if sae_conf["sgd"]["name"] == "adam": | |
43 | + sgd = Adam(lr=sae_conf["sgd"]["lr"]) | |
44 | + elif sae_conf["sgd"]["name"] == "sgd": | |
45 | + sgd = SGD(lr=sae_conf["sgd"]["lr"]) | |
46 | +except : | |
47 | + sgd = sae_conf["sgd"] | |
43 | 48 | |
44 | -params={ "h1" : "_".join([str(x) for x in hidden_size]), | |
45 | - "inside_activation" : input_activation, | |
46 | - "out_activation" : output_activation, | |
47 | - "do_dropout": "_".join([str(x) for x in do_do]), | |
48 | - "loss" : loss, | |
49 | - "epochs" : epochs , | |
50 | - "batch_size" : batch, | |
51 | - "patience" : patience, | |
52 | - "sgd" : sgd_repr} | |
53 | -name = "_".join([ str(x) for x in params.values()]) | |
49 | +name = json_conf["name"] | |
54 | 50 | try: |
55 | - os.mkdir("{}/SAE_{}".format(in_dir,name)) | |
51 | + os.mkdir("{}/{}".format(in_dir,name)) | |
56 | 52 | except: |
57 | 53 | pass |
58 | -db = shelve.open("{}/SAE_{}/ae_model.shelve".format(in_dir,name),writeback=True) | |
54 | +db = shelve.open("{}/{}/ae_model.shelve".format(in_dir,name),writeback=True) | |
59 | 55 | # |
60 | -json.dump(params, | |
61 | - open("{}/SAE_{}/ae_model.json".format(in_dir,name),"w"), | |
62 | - indent=4) | |
63 | - | |
64 | 56 | keys = ["ASR","TRS"] |
57 | +mlp_conf = json_conf["mlp"] | |
58 | +mlp_h = mlp_conf["hidden_size"] | |
59 | +mlp_loss = mlp_conf["loss"] | |
60 | +mlp_dropouts = mlp_conf["do"] | |
61 | +mlp_epochs = mlp_conf["epochs"] | |
62 | +mlp_batch_size = mlp_conf["batch"] | |
63 | +mlp_input_activation=mlp_conf["input_activation"] | |
64 | +mlp_output_activation=mlp_conf["output_activation"] | |
65 | 65 | |
66 | -mlp_h = [ 150 , 300 ] | |
67 | -mlp_loss ="categorical_crossentropy" | |
68 | -mlp_dropouts = [0,0,0,0] | |
69 | -mlp_sgd = Adam(0.001) | |
70 | -mlp_epochs = 2000 | |
71 | -mlp_batch_size = 8 | |
66 | +try: | |
67 | + k = mlp_conf["sgd"] | |
68 | + if mlp_conf["sgd"]["name"] == "adam": | |
69 | + mlp_sgd = Adam(lr=mlp_conf["sgd"]["lr"]) | |
70 | + elif mlp_conf["sgd"]["name"] == "sgd" : | |
71 | + mlp_sgd = SGD(lr=mlp_conf["sgd"]["lr"]) | |
72 | +except : | |
73 | + mlp_sgd = mlp_conf["sgd"] | |
72 | 74 | |
75 | + | |
73 | 76 | db["SAE"] = {} |
74 | 77 | |
75 | 78 | db["SAEFT"] = {} |
76 | 79 | for mod in keys : |
77 | - print "MODE ", mod | |
78 | 80 | res_tuple=train_sae(infer_model["LDA"][mod]["TRAIN"],infer_model["LDA"][mod]["DEV"], |
79 | 81 | infer_model["LDA"][mod]["TEST"], |
80 | 82 | hidden_size,dropouts=do_do, |
81 | - patience = params["patience"],sgd=sgd,input_activation="tanh", | |
83 | + patience = "patience",sgd=sgd,input_activation="tanh", | |
82 | 84 | output_activation="tanh",loss=loss,epochs=epochs, |
83 | 85 | batch_size=batch,verbose=0) |
84 | 86 | #print len(res), [len(x) for x in res[0]], [ len(x) for x in res[1]] |
85 | 87 | for name , levels in zip(["SAE","SAEFT"],res_tuple): |
86 | - print "NAME", name | |
87 | 88 | mlp_res_by_level = [] |
88 | 89 | for res in levels: |
89 | 90 | mlp_res_list=[] |
90 | 91 | for nb,layer in enumerate(res) : |
91 | - print "layer NB",nb | |
92 | 92 | mlp_res_list.append(train_mlp(layer[0],infer_model["LABEL"][mod]["TRAIN"], |
93 | 93 | layer[1],infer_model["LABEL"][mod]["DEV"], |
94 | 94 | layer[2],infer_model["LABEL"][mod]["TEST"], |
95 | 95 | |
... | ... | @@ -100,11 +100,10 @@ |
100 | 100 | |
101 | 101 | mod = "ASR" |
102 | 102 | mod2= "TRS" |
103 | -print "mode SPE " | |
104 | 103 | res_tuple = train_sae(infer_model["LDA"][mod]["TRAIN"], |
105 | 104 | infer_model["LDA"][mod]["DEV"], |
106 | 105 | infer_model["LDA"][mod]["TEST"], |
107 | - hidden_size,dropouts=[0],patience=params["patience"], | |
106 | + hidden_size,dropouts=[0],patience="patience", | |
108 | 107 | sgd=sgd,input_activation=input_activation,output_activation=input_activation, |
109 | 108 | loss=loss,epochs=epochs,batch_size=batch, |
110 | 109 | y_train=infer_model["LDA"][mod2]["TRAIN"], |
... | ... | @@ -125,5 +124,6 @@ |
125 | 124 | mlp_res_by_level.append(mlp_res_list) |
126 | 125 | db[name]["SPE"] = mlp_res_by_level |
127 | 126 | |
127 | +db.sync() | |
128 | 128 | db.close() |
LDA/04d-mmf_dsae.py
... | ... | @@ -15,6 +15,7 @@ |
15 | 15 | import sklearn.metrics |
16 | 16 | import shelve |
17 | 17 | import pickle |
18 | + | |
18 | 19 | from utils import * |
19 | 20 | import sys |
20 | 21 | import os |
21 | 22 | |
22 | 23 | |
23 | 24 | |
24 | 25 | |
25 | 26 | |
26 | 27 | |
27 | 28 | |
28 | 29 | |
29 | 30 | |
30 | 31 | |
... | ... | @@ -26,94 +27,71 @@ |
26 | 27 | #['ASR', 'TRS', 'LABEL'] |
27 | 28 | # In[6]: |
28 | 29 | |
29 | -# AE params | |
30 | -hidden_size=[ 100, 100 ] | |
31 | -input_activation="relu" | |
32 | -output_activation="relu" | |
33 | -loss="mse" | |
34 | -epochs= 1000 | |
35 | -batch_size=1 | |
36 | -patience=20 | |
37 | -do_do=[ 0.25 ] * len(hidden_size) | |
38 | -sgd = Adam(lr=0.00001)#SGD(lr=0.00001,nesterov=False) #'rmsprop'# Adam(lr=0.00001)#SGD(lr=0.001, momentum=0.9, nesterov=True) | |
39 | -try : | |
40 | - sgd_repr=sgd.get_config()["name"] | |
41 | -except AttributeError : | |
42 | - sgd_repr=sgd | |
30 | +json_conf =json.load(open(sys.argv[3])) | |
43 | 31 | |
44 | -# Transforme : | |
45 | -trans_hidden_size=[ 300 , 300 ] | |
46 | -trans_input_activation="relu" | |
47 | -trans_output_activation="relu" | |
48 | -trans_loss="mse" | |
49 | -trans_epochs=1000 | |
50 | -trans_batch_size=8 | |
51 | -trans_patience=20 | |
52 | -trans_do=[ 0.25 ] * len(trans_hidden_size) | |
53 | -trans_sgd = Adam(lr=0.0001)#SGD(lr=0.00001,nesterov=False) #'rmsprop'# Adam(lr=0.00001)#SGD(lr=0.001, momentum=0.9, nesterov=True) | |
54 | -try : | |
55 | - trans_sgd_repr=trans_sgd.get_config()["name"] | |
56 | -except AttributeError : | |
57 | - trans_sgd_repr=trans_sgd | |
32 | +dsae_conf = json_conf["dsae"] | |
58 | 33 | |
34 | +hidden_size= dsae_conf["hidden_size"] | |
35 | +input_activation=dsae_conf["input_activation"] | |
36 | +output_activation=dsae_conf["output_activation"] | |
37 | +loss=dsae_conf["loss"] | |
38 | +epochs=dsae_conf["epochs"] | |
39 | +batch_size=dsae_conf["batch"] | |
40 | +patience=dsae_conf["patience"] | |
41 | +do_do=dsae_conf["do"] | |
42 | +try: | |
43 | + k = dsae_conf["sgd"] | |
44 | + if dsae_conf["sgd"]["name"] == "adam": | |
45 | + sgd = Adam(lr=dsae_conf["sgd"]["lr"])#SGD(lr=0.00001,nesterov=False) #'rmsprop'# Adam(lr=0.00001)#SGD(lr=0.001, momentum=0.9, nesterov=True) | |
46 | + elif dsae_conf["sgd"]["name"] == "sgd": | |
47 | + sgd = SGD(lr=dsae_conf["sgd"]["lr"]) | |
48 | +except: | |
49 | + sgd = dsae_conf["sgd"] | |
59 | 50 | |
51 | +trans_conf = json_conf["dsae"]["transform"] | |
52 | +trans_hidden_size=trans_conf["hidden_size"] | |
53 | +trans_input_activation=trans_conf["input_activation"] | |
54 | +trans_output_activation=trans_conf["output_activation"] | |
55 | +trans_loss=trans_conf["loss"] | |
56 | +trans_epochs=trans_conf["epochs"] | |
57 | +trans_batch_size=trans_conf["batch"] | |
58 | +trans_patience=trans_conf["patience"] | |
59 | +trans_do=trans_conf["do"] | |
60 | +try: | |
61 | + k = trans_conf["sgd"] | |
62 | + if trans_conf["sgd"]["name"] == "adam": | |
63 | + trans_sgd = Adam(lr=trans_conf["sgd"]["lr"])#SGD(lr=0.00001,nesterov=False) #'rmsprop'# Adam(lr=0.00001)#SGD(lr=0.001, momentum=0.9, nesterov=True) | |
64 | + elif trans_conf["sgd"]["name"] == "sgd": | |
65 | + trans_sgd = SGD(lr=trans_conf["sgd"]["lr"]) | |
66 | +except e : | |
67 | + trans_sgd = trans_conf["sgd"] | |
60 | 68 | |
61 | -ae={ "h1" : "_".join([str(x) for x in hidden_size]), | |
62 | - "inside_activation" : input_activation, | |
63 | - "out_activation" : output_activation, | |
64 | - "do_dropout": "_".join([str(x) for x in do_do]), | |
65 | - "loss" : loss, | |
66 | - "epochs" : epochs , | |
67 | - "batch_size" : batch_size, | |
68 | - "patience" : patience, | |
69 | - "sgd" : sgd_repr} | |
70 | -name = "_".join([ str(x) for x in ae.values()]) | |
71 | 69 | |
72 | -trans={ "h1" : "_".join([str(x) for x in trans_hidden_size]), | |
73 | - "inside_activation" : trans_input_activation, | |
74 | - "out_activation" : trans_output_activation, | |
75 | - "do_dropout": "_".join([str(x) for x in trans_do]), | |
76 | - "loss" : trans_loss, | |
77 | - "epochs" : trans_epochs , | |
78 | - "batch_size" : trans_batch_size, | |
79 | - "patience" : trans_patience, | |
80 | - "sgd" : trans_sgd_repr} | |
70 | +mlp_conf = json_conf["mlp"] | |
71 | +mlp_h = mlp_conf["hidden_size"] | |
72 | +mlp_loss = mlp_conf["loss"] | |
73 | +mlp_dropouts = mlp_conf["do"] | |
74 | +mlp_epochs = mlp_conf["epochs"] | |
75 | +mlp_batch_size = mlp_conf["batch"] | |
76 | +mlp_input_activation=mlp_conf["input_activation"] | |
77 | +mlp_output_activation=mlp_conf["output_activation"] | |
78 | +try: | |
79 | + k = mlp_conf["sgd"] | |
80 | + if mlp_conf["sgd"]["name"] == "adam": | |
81 | + mlp_sgd = Adam(lr=mlp_conf["sgd"]["lr"])#SGD(lr=0.00001,nesterov=False) #'rmsprop'# Adam(lr=0.00001)#SGD(lr=0.001, momentum=0.9, nesterov=True) | |
82 | + elif mlp_conf["sgd"]["name"] == "sgd": | |
83 | + mlp_sgd = SGD(lr=mlp_conf["sgd"]["lr"]) | |
84 | +except: | |
85 | + mlp_sgd = mlp_conf["sgd"] | |
81 | 86 | |
82 | -mlp_h = [ 300 , 300 ] | |
83 | -mlp_loss ="categorical_crossentropy" | |
84 | -mlp_dropouts = [0,0,0,0] | |
85 | -mlp_sgd = Adam(0.0001) | |
86 | -mlp_epochs = 1000 | |
87 | -mlp_batch_size = 8 | |
88 | -mlp_input_activation = "relu" | |
89 | -mlp_output_activation = "softmax" | |
90 | 87 | |
91 | -try : | |
92 | - mlp_sgd_repr=mlp_sgd.get_config()["name"] | |
93 | -except AttributeError : | |
94 | - mlp_sgd_repr=mlp_sgd | |
95 | - | |
96 | - | |
97 | - | |
98 | -mlp={ "h1" : "_".join([str(x) for x in mlp_h ]), | |
99 | - "inside_activation" : mlp_input_activation, | |
100 | - "out_activation" : mlp_output_activation, | |
101 | - "do_dropout": "_".join([str(x) for x in mlp_dropouts]), | |
102 | - "loss" : mlp_loss, | |
103 | - "epochs" : mlp_epochs , | |
104 | - "batch_size" : mlp_batch_size, | |
105 | - "sgd" : mlp_sgd_repr} | |
106 | - | |
107 | -params = { "ae":ae, "trans":trans, "mlp":mlp} | |
88 | +name = json_conf["name"] | |
108 | 89 | try: |
109 | - os.mkdir("{}/DSAE_{}".format(in_dir,name)) | |
90 | + os.mkdir("{}/{}".format(in_dir,name)) | |
110 | 91 | except: |
111 | 92 | pass |
112 | -db = shelve.open("{}/DSAE_{}/ae_model.shelve".format(in_dir,name),writeback=True) | |
93 | +db = shelve.open("{}/{}/ae_model.shelve".format(in_dir,name),writeback=True) | |
113 | 94 | # |
114 | -json.dump(params, | |
115 | - open("{}/DSAE_{}/ae_model.json".format(in_dir,name),"w"), | |
116 | - indent=4) | |
117 | 95 | |
118 | 96 | keys = ["ASR","TRS"] |
119 | 97 | |
... | ... | @@ -144,7 +122,6 @@ |
144 | 122 | |
145 | 123 | db["DSAE"][mod] = mlp_res_list |
146 | 124 | mod = "TRS" |
147 | -print hidden_size | |
148 | 125 | res_tuple_TRS = train_ae(infer_model["LDA"][mod]["TRAIN"], |
149 | 126 | infer_model["LDA"][mod]["DEV"], |
150 | 127 | infer_model["LDA"][mod]["TEST"], |
151 | 128 | |
152 | 129 | |
153 | 130 | |
... | ... | @@ -173,16 +150,16 @@ |
173 | 150 | |
174 | 151 | print " get weight trans" |
175 | 152 | |
176 | -for asr_pred, trs_pred in zip(res_tuple_ASR[0], res_tuple_TRS[0]): | |
177 | - print "ASR", [ x.shape for x in asr_pred] | |
153 | +#for asr_pred, trs_pred in zip(res_tuple_ASR[0], res_tuple_TRS[0]): | |
154 | + # print "ASR", [ x.shape for x in asr_pred] | |
178 | 155 | |
179 | - print "TRS", [ x.shape for x in trs_pred] | |
180 | ||
156 | + # print "TRS", [ x.shape for x in trs_pred] | |
181 | 157 | |
182 | 158 | for asr_pred, trs_pred in zip(res_tuple_ASR[0], res_tuple_TRS[0]): |
183 | - print "ASR", [ x.shape for x in asr_pred] | |
159 | + # print "ASR", [ x.shape for x in asr_pred] | |
184 | 160 | |
185 | - print "TRS", [ x.shape for x in trs_pred] | |
161 | + # print "TRS", [ x.shape for x in trs_pred] | |
162 | + # print " TRANS SGD", trans_sgd | |
186 | 163 | transfert.append( train_ae(asr_pred[0], |
187 | 164 | asr_pred[1], |
188 | 165 | asr_pred[2], |
189 | 166 | |
190 | 167 | |
... | ... | @@ -217,13 +194,13 @@ |
217 | 194 | |
218 | 195 | print " FT " |
219 | 196 | WA = res_tuple_ASR[1] |
220 | -print "WA", len(WA), [ len(x) for x in WA] | |
197 | +#print "WA", len(WA), [ len(x) for x in WA] | |
221 | 198 | WT = res_tuple_TRS[1] |
222 | 199 | |
223 | -print "WT", len(WT), [ len(x) for x in WT] | |
200 | +#print "WT", len(WT), [ len(x) for x in WT] | |
224 | 201 | Wtr = [ x[1] for x in transfert] |
225 | 202 | |
226 | -print "Wtr", len(Wtr), [ len(x) for x in Wtr],[ len(x[1]) for x in Wtr] | |
203 | +#print "Wtr", len(Wtr), [ len(x) for x in Wtr],[ len(x[1]) for x in Wtr] | |
227 | 204 | |
228 | 205 | ft_res = ft_dsae(infer_model["LDA"]["ASR"]["TRAIN"], |
229 | 206 | infer_model["LDA"]["ASR"]["DEV"], |
LDA/04e-mm_vae.py
1 | 1 | |
2 | 2 | # coding: utf-8 |
3 | - | |
4 | -# In[2]: | |
5 | - | |
6 | -# Import | |
7 | 3 | import gensim |
8 | 4 | from scipy import sparse |
9 | 5 | import itertools |
10 | 6 | |
11 | 7 | |
12 | 8 | |
13 | 9 | |
14 | 10 | |
15 | 11 | |
16 | 12 | |
17 | 13 | |
18 | 14 | |
19 | 15 | |
... | ... | @@ -26,71 +22,64 @@ |
26 | 22 | #['ASR', 'TRS', 'LABEL'] |
27 | 23 | # In[6]: |
28 | 24 | |
25 | +json_conf =json.load(open(sys.argv[3])) | |
26 | +vae_conf = json_conf["vae"] | |
29 | 27 | |
30 | -hidden_size= [60] | |
31 | -input_activation="tanh" | |
32 | -output_activation="sigmoid" | |
33 | -epochs=300 | |
34 | -batch=1 | |
35 | -patience=60 | |
36 | -sgd = Adam(lr=0.0001)#SGD(lr=0.00001,nesterov=False) #'rmsprop'# Adam(lr=0.00001)#SGD(lr=0.001, momentum=0.9, nesterov=True) | |
37 | -latent_dim = 30 | |
28 | +hidden_size= vae_conf["hidden_size"] | |
29 | +input_activation=vae_conf["input_activation"] | |
30 | +output_activation=vae_conf["output_activation"] | |
31 | +epochs=vae_conf["epochs"] | |
32 | +batch=vae_conf["batch"] | |
33 | +patience=vae_conf["patience"] | |
34 | +latent_dim = vae_conf["latent"] | |
35 | +try: | |
36 | + k = vae_conf["sgd"] | |
37 | + if vae_conf["sgd"]["name"] == "adam": | |
38 | + sgd = Adam(lr=vae_conf["sgd"]["lr"])#SGD(lr=0.00001,nesterov=False) #'rmsprop'# Adam(lr=0.00001)#SGD(lr=0.001, momentum=0.9, nesterov=True) | |
39 | + elif vae_conf["sgd"]["name"] == "sgd": | |
40 | + sgd = SGD(lr=vae_conf["sgd"]["lr"]) | |
41 | +except: | |
42 | + sgd = vae_conf["sgd"] | |
38 | 43 | |
44 | +mlp_conf = json_conf["mlp"] | |
45 | +mlp_h = mlp_conf["hidden_size"] | |
46 | +mlp_loss = mlp_conf["loss"] | |
47 | +mlp_dropouts = mlp_conf["do"] | |
48 | +mlp_epochs = mlp_conf["epochs"] | |
49 | +mlp_batch_size = mlp_conf["batch"] | |
50 | +mlp_input_activation=mlp_conf["input_activation"] | |
51 | +mlp_output_activation=mlp_conf["output_activation"] | |
39 | 52 | |
40 | 53 | |
41 | -mlp_h = [ 256 ] | |
42 | -mlp_loss = "categorical_crossentropy" | |
43 | -mlp_dropouts = [] | |
44 | -mlp_sgd = Adam(lr=0.001) | |
45 | -mlp_epochs = 1000 | |
46 | -mlp_batch_size = 16 | |
47 | -mlp_output_activation="softmax" | |
54 | +try: | |
55 | + k = mlp_conf["sgd"] | |
56 | + if mlp_conf["sgd"]["name"] == "adam": | |
57 | + mlp_sgd = Adam(lr=mlp_conf["sgd"]["lr"])#SGD(lr=0.00001,nesterov=False) #'rmsprop'# Adam(lr=0.00001)#SGD(lr=0.001, momentum=0.9, nesterov=True) | |
58 | + elif mlp_conf["sgd"]["name"] == "sgd": | |
59 | + mlp_sgd = SGD(lr=mlp_conf["sgd"]["lr"]) | |
60 | +except: | |
61 | + mlp_sgd = mlp_conf["sgd"] | |
48 | 62 | |
49 | -try : | |
50 | - sgd_repr=sgd.get_config()["name"] | |
51 | -except AttributeError : | |
52 | - sgd_repr=sgd | |
53 | 63 | |
54 | -try : | |
55 | - mlp_sgd_repr=mlp_sgd.get_config()["name"] | |
56 | -except AttributeError : | |
57 | - mlp_sgd_repr=mlp_sgd | |
64 | +name = json_conf["name"] | |
58 | 65 | |
59 | 66 | |
60 | -params={ "h1" : "_".join([ str(x) for x in hidden_size ]), | |
61 | - "inside_activation" : input_activation, | |
62 | - "output_activation" : output_activation, | |
63 | - "epochs" : epochs , | |
64 | - "batch_size" : batch, | |
65 | - "patience" : patience, | |
66 | - "sgd" : sgd_repr, | |
67 | - "mlp_h ": "_".join([str(x) for x in mlp_h]), | |
68 | - "mlp_loss ": mlp_loss, | |
69 | - "mlp_dropouts ": "_".join([str(x) for x in mlp_dropouts]), | |
70 | - "mlp_sgd ": mlp_sgd_repr, | |
71 | - "mlp_epochs ": mlp_epochs, | |
72 | - "mlp_batch_size ": mlp_batch_size, | |
73 | - "mlp_output" : mlp_output_activation | |
74 | - } | |
75 | -name = "_".join([ str(x) for x in params.values()]) | |
76 | 67 | try: |
77 | - os.mkdir("{}/VAE_{}".format(in_dir,name)) | |
68 | + os.mkdir("{}/{}".format(in_dir,name)) | |
78 | 69 | except: |
79 | 70 | pass |
80 | -db = shelve.open("{}/VAE_{}/ae_model.shelve".format(in_dir,name),writeback=True) | |
81 | -db["params"] = params | |
71 | + | |
72 | + | |
73 | +db = shelve.open("{}/{}/ae_model.shelve".format(in_dir,name),writeback=True) | |
82 | 74 | db["LABEL"]=infer_model["LABEL"] |
83 | 75 | # |
84 | -json.dump(params, | |
85 | - open("{}/VAE_{}/ae_model.json".format(in_dir,name),"w"), | |
86 | - indent=4) | |
87 | 76 | |
88 | 77 | keys = ["ASR","TRS"] |
89 | 78 | |
90 | 79 | db["VAE"] = {} |
91 | 80 | db["LDA"] = {} |
92 | 81 | for mod in keys : |
93 | - print mod | |
82 | + #print mod | |
94 | 83 | db["LDA"][mod] = train_mlp(infer_model["LDA"][mod]["TRAIN"],infer_model["LABEL"][mod]["TRAIN"], |
95 | 84 | infer_model["LDA"][mod]["DEV"],infer_model["LABEL"][mod]["DEV"], |
96 | 85 | infer_model["LDA"][mod]["TEST"],infer_model["LABEL"][mod]["TEST"], |
LDA/mlp.py
1 | -../VARIATIONAL/Variational-Autoencoder/mlp.py |
LDA/mlp.py
1 | +# -*- coding: utf-8 -*- | |
2 | +import keras | |
3 | +import numpy as np | |
4 | +#from keras.layers.core import Dense, Dropout, Activation | |
5 | +from keras.optimizers import SGD,Adam | |
6 | +from keras.models import Sequential | |
7 | +from keras.layers import Input, Dense, Dropout | |
8 | +from keras.models import Model | |
9 | +from keras.utils.layer_utils import layer_from_config | |
10 | +from itertools import izip_longest | |
11 | + | |
12 | +import pandas | |
13 | +from collections import namedtuple | |
14 | +from sklearn.metrics import accuracy_score as perf | |
15 | +save_tuple= namedtuple("save_tuple",["pred_train","pred_dev","pred_test"]) | |
16 | + | |
17 | + | |
18 | +def ft_dsae(train,dev,test, | |
19 | + y_train=None,y_dev=None,y_test=None, | |
20 | + ae_hidden=[20],transfer_hidden=[20], | |
21 | + start_weights=None,transfer_weights=None,end_weights=None, | |
22 | + input_activation="tanh", output_activation="tanh", | |
23 | + init="glorot_uniform", | |
24 | + ae_dropouts=[None], transfer_do=[None], | |
25 | + sgd="sgd", loss="mse", patience=5, verbose=0, epochs=5, batch_size=8): | |
26 | + | |
27 | + if not start_weights : | |
28 | + start_weights = [ None ] * len(ae_hidden) | |
29 | + if not transfer_weights : | |
30 | + transfer_weights = [None ] * len(transfer_hidden) | |
31 | + if not end_weights : | |
32 | + end_weights = [ None ] * len(end_weights) | |
33 | + if not transfer_do : | |
34 | + transfer_do = [0] * len(transfer_hidden) | |
35 | + predict_y = True | |
36 | + if y_train is None or y_dev is None or y_test is None : | |
37 | + y_train = train | |
38 | + y_dev = dev | |
39 | + y_test = test | |
40 | + predict_y = False | |
41 | + param_predict = [ train, dev, test ] | |
42 | + if predict_y : | |
43 | + param_predict += [ y_train, y_dev ,y_test ] | |
44 | + | |
45 | + pred_by_level = [] # Contient les prediction par niveaux de transfert | |
46 | + layers = [Input(shape=(train.shape[1],))] | |
47 | + #for w in transfer_weights: | |
48 | + #print "TW",[ [ y.shape for y in x ] for x in w] | |
49 | + #print "SW",[ [ y.shape for y in x] for x in start_weights] | |
50 | + #print "EW",[ [ y.shape for y in x ] for x in end_weights] | |
51 | + for cpt in range(1,len(ae_hidden)): | |
52 | + #print ae_hidden,cpt | |
53 | + #print cpt, "before" | |
54 | + #print "before2", [ [ x.shape for x in y] for y in start_weights[:cpt] ] | |
55 | + #print "before3", [ [ x.shape for x in y] for y in transfer_weights[cpt]] | |
56 | + #print "before4", [ [ x.shape for x in y] for y in end_weights[cpt:]] | |
57 | + sizes = ae_hidden[:cpt] + transfer_hidden + ae_hidden[cpt:] | |
58 | + weights = start_weights[:cpt] + transfer_weights[(cpt-1)] + end_weights[cpt:] | |
59 | + #print "SIZES", sizes | |
60 | + #print "AW",[ [ y.shape for y in x ] for x in weights] | |
61 | + #print "WEI", len(weights) , [ len(x) for x in weights ] | |
62 | + if len(ae_dropouts) == len(ae_hidden): | |
63 | + do = ae_dropouts[:cpt] + transfer_do + ae_dropouts[cpt:] | |
64 | + else : | |
65 | + do = [ 0 ] * (len(ae_hidden) + len(transfer_hidden)) | |
66 | + for w in weights[:-1]: | |
67 | + #print "STEP", size | |
68 | + layers.append(Dense(w[1].shape[0],activation=input_activation,init=init,weights=w)(layers[-1])) | |
69 | + if do : | |
70 | + d = do.pop(0) | |
71 | + if d > 0 : | |
72 | + layers.append(Dropout(d)(layers[-1])) | |
73 | + | |
74 | + layers.append(Dense(y_train.shape[1],activation=output_activation)(layers[-1])) | |
75 | + models = [Model(input=layers[0] , output=x) for x in layers[1:]] | |
76 | + models[-1].compile(optimizer=sgd,loss=loss) | |
77 | + models[-1].fit(train,y_train,nb_epoch=epochs,batch_size=batch_size,callbacks=[keras.callbacks.EarlyStopping(monitor='val_loss', patience=patience, verbose=0)],validation_data=(dev,dev),verbose=verbose) | |
78 | + predictions = [ [x.predict(y) for y in param_predict ] for x in models ] | |
79 | + pred_by_level.append(predictions) | |
80 | + | |
81 | + return pred_by_level | |
82 | + | |
83 | +def train_mlp(x_train,y_train,x_dev,y_dev,x_test,y_test,hidden_size,input_activation="relu",hidden_activation="relu",output_activation="softmax",loss="mse",init="glorot_uniform",dropouts=None,sgd=None,epochs=1200,batch_size=16,fit_verbose=1,test_verbose=0,save_pred=False,keep_histo=False): | |
84 | + | |
85 | + | |
86 | + layers = [Input(shape=(x_train.shape[1],))] | |
87 | + | |
88 | + for h in hidden_size: | |
89 | + if dropouts: | |
90 | + d = dropouts.pop(0) | |
91 | + if d > 0 : | |
92 | + layers.append(Dropout(d)(layers[-1])) | |
93 | + | |
94 | + layers.append(Dense(h,init=init,activation=input_activation)(layers[-1])) | |
95 | + #if dropouts: | |
96 | + # drop_prob=dropouts.pop(0) | |
97 | + # if drop_prob > 0: | |
98 | + # model.add(Dropout(drop_prob)) | |
99 | + | |
100 | + #if dropouts: | |
101 | + # drop_prob=dropouts.pop(0) | |
102 | + # if drop_prob > 0: | |
103 | + # model.add(Dropout(drop_prob)) | |
104 | + | |
105 | + #if dropouts: | |
106 | + # model.add(Dropout(dropouts.pop(0))) | |
107 | + if dropouts: | |
108 | + d = dropouts.pop(0) | |
109 | + if d > 0 : | |
110 | + layers.append(Dropout(d)(layers[-1])) | |
111 | + | |
112 | + layers.append(Dense( y_train.shape[1],activation=output_activation,init=init)(layers[-1])) | |
113 | + | |
114 | + model = Model(layers[0] , layers[-1]) | |
115 | + if not sgd: | |
116 | + sgd = SGD(lr=0.01, decay=0, momentum=0.9) | |
117 | + | |
118 | + model.compile(loss=loss, optimizer=sgd,metrics=['accuracy']) | |
119 | + | |
120 | + scores_dev=[] | |
121 | + scores_test=[] | |
122 | + scores_train=[] | |
123 | + save=None | |
124 | + for i in range(epochs): | |
125 | + hist=model.fit(x_train, y_train, nb_epoch=1, batch_size=batch_size,verbose=fit_verbose,validation_data=(x_dev,y_dev)) | |
126 | + pred_train=model.predict(x_train) | |
127 | + pred_dev=model.predict(x_dev) | |
128 | + pred_test=model.predict(x_test) | |
129 | + | |
130 | + scores_train.append(perf(np.argmax(y_train,axis=1),np.argmax(pred_train,axis=1))) | |
131 | + scores_dev.append(perf(np.argmax(y_dev,axis=1),np.argmax(pred_dev,axis=1))) | |
132 | + scores_test.append(perf(np.argmax(y_test,axis=1),np.argmax(pred_test,axis=1))) | |
133 | + if fit_verbose : | |
134 | + print "{} {} {} {}".format(i,scores_train[-1],scores_dev[-1],scores_test[-1]) | |
135 | + if save is None or (len(scores_dev)>2 and scores_dev[-1] > scores_dev[-2]): | |
136 | + save=save_tuple(pred_train,pred_dev,pred_test) | |
137 | + arg_dev = np.argmax(scores_dev) | |
138 | + best_dev=scores_dev[arg_dev] | |
139 | + best_test=scores_test[arg_dev] | |
140 | + max_test=np.max(scores_test) | |
141 | + if fit_verbose: | |
142 | + print " res : {} {} {}".format(best_dev,best_test,max_test) | |
143 | + | |
144 | + res=[scores_train,scores_dev,scores_test] | |
145 | + if save_pred: | |
146 | + res.append(save) | |
147 | + if keep_histo: | |
148 | + res.append(hist) | |
149 | + return res | |
150 | + | |
151 | +def train_ae(train,dev,test,hidden_sizes,y_train=None,y_dev=None,y_test=None,dropouts=None,input_activation="tanh",output_activation="tanh",loss="mse",sgd=None,epochs=500,batch_size=8,verbose=1,patience=20,get_weights=False,set_weights=[]): | |
152 | + | |
153 | + input_vect = Input(shape=(train.shape[1],)) | |
154 | + | |
155 | + previous = [input_vect] | |
156 | + | |
157 | + if dropouts is None: | |
158 | + dropouts = [ 0 ] * (len(hidden_sizes) +1) | |
159 | + if sgd is None : | |
160 | + sgd = SGD(lr=0.01, decay=0, momentum=0.9) | |
161 | + did_do = False | |
162 | + if dropouts : | |
163 | + d = dropouts.pop(0) | |
164 | + if d : | |
165 | + previous.append(Dropout(d)(previous[-1])) | |
166 | + did_do = True | |
167 | + | |
168 | + for h_layer,weight_layer in izip_longest(hidden_sizes,set_weights,fillvalue=None) : | |
169 | + # ,weights=w | |
170 | + if weight_layer : | |
171 | + w = weight_layer[0] | |
172 | + else : | |
173 | + w = None | |
174 | + #print "ADD SIZE" , h_layer | |
175 | + if did_do : | |
176 | + p = previous.pop() | |
177 | + did_do = False | |
178 | + else : | |
179 | + p = previous[-1] | |
180 | + previous.append(Dense(h_layer,activation=input_activation,weights=w)(previous[-1])) | |
181 | + if dropouts: | |
182 | + d = dropouts.pop(0) | |
183 | + if d : | |
184 | + previous.append(Dropout(d)(previous[-1])) | |
185 | + did_do = True | |
186 | + | |
187 | + predict_y = True | |
188 | + if y_train is None or y_dev is None or y_test is None : | |
189 | + y_train = train | |
190 | + y_dev = dev | |
191 | + y_test = test | |
192 | + predict_y = False | |
193 | + previous.append(Dense(y_train.shape[1],activation=output_activation)(previous[-1])) | |
194 | + models = [Model(input=previous[0] , output=x) for x in previous[1:]] | |
195 | + print "MLP", sgd, loss | |
196 | + models[-1].compile(optimizer=sgd,loss=loss) | |
197 | + models[-1].fit(train,y_train,nb_epoch=epochs,batch_size=batch_size,callbacks=[keras.callbacks.EarlyStopping(monitor='val_loss', patience=patience, verbose=0)],validation_data=(dev,dev),verbose=verbose) | |
198 | + param_predict = [ train, dev, test ] | |
199 | + if predict_y : | |
200 | + param_predict += [ y_train, y_dev ,y_test ] | |
201 | + predictions = [ [x.predict(y) for y in param_predict ] for x in models ] | |
202 | + if get_weights : | |
203 | + weights = [ x.get_weights() for x in models[-1].layers if x.get_weights() ] | |
204 | + return ( predictions , weights ) | |
205 | + else : | |
206 | + return predictions | |
207 | + | |
208 | +def train_sae(train,dev,test,hidden_sizes,y_train=None,y_dev=None,y_test=None,dropouts=None,input_activation="tanh",output_activation="tanh",loss="mse",sgd=None,epochs=500,batch_size=8,verbose=1,patience=20): | |
209 | + | |
210 | + weights = [] | |
211 | + predictions = [[(train,dev,test),()]] | |
212 | + ft_pred = [] | |
213 | + past_sizes = [] | |
214 | + | |
215 | + | |
216 | + for size in hidden_sizes : | |
217 | + #print "DO size " , size , "FROM" , hidden_sizes | |
218 | + res_pred, res_wght = train_ae(predictions[-1][-2][0], predictions[-1][-2][1],predictions[-1][-2][2],[size], | |
219 | + dropouts=dropouts, input_activation=input_activation, | |
220 | + output_activation=output_activation, loss=loss, sgd=sgd, | |
221 | + epochs=epochs, batch_size=batch_size, verbose=verbose, | |
222 | + patience=patience,get_weights=True) | |
223 | + past_sizes.append(size) | |
224 | + weights.append(res_wght) | |
225 | + predictions.append(res_pred) | |
226 | + #print "FINE TUNE " | |
227 | + res_ftpred = train_ae(train,dev,test,past_sizes,y_train=y_train,y_dev=y_dev,y_test=y_test, | |
228 | + dropouts=dropouts, | |
229 | + input_activation=input_activation, | |
230 | + output_activation=output_activation, | |
231 | + loss=loss,sgd=sgd,epochs=epochs, | |
232 | + batch_size=batch_size,verbose=verbose,patience=patience, | |
233 | + set_weights=weights) | |
234 | + ft_pred.append(res_ftpred) | |
235 | + | |
236 | + return ( predictions[1:] , ft_pred) |
LDA/mlp_mmf1.sh
1 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/193/ MM_features/data_w20/mmf_193.shelve >> output_v7/recap.txt | |
2 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/194/ MM_features/data_w20/mmf_194.shelve >> output_v7/recap.txt | |
3 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/195/ MM_features/data_w20/mmf_195.shelve >> output_v7/recap.txt | |
4 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/196/ MM_features/data_w20/mmf_196.shelve >> output_v7/recap.txt | |
5 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/197/ MM_features/data_w20/mmf_197.shelve >> output_v7/recap.txt | |
6 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/198/ MM_features/data_w20/mmf_198.shelve >> output_v7/recap.txt | |
7 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/393/ MM_features/data_w20/mmf_393.shelve >> output_v7/recap.txt | |
1 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/193/ MM_features/data_w99/mmf_193.shelve >> output_v8/recap.txt | |
2 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/194/ MM_features/data_w99/mmf_194.shelve >> output_v8/recap.txt | |
3 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/195/ MM_features/data_w99/mmf_195.shelve >> output_v8/recap.txt | |
4 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/196/ MM_features/data_w99/mmf_196.shelve >> output_v8/recap.txt | |
5 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/197/ MM_features/data_w99/mmf_197.shelve >> output_v8/recap.txt | |
6 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/198/ MM_features/data_w99/mmf_198.shelve >> output_v8/recap.txt | |
7 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/393/ MM_features/data_w99/mmf_393.shelve >> output_v8/recap.txt |
LDA/mlp_mmf2.sh
1 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/394/ MM_features/data_w20/mmf_394.shelve >> output_v7/recap.txt | |
2 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/395/ MM_features/data_w20/mmf_395.shelve >> output_v7/recap.txt | |
3 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/396/ MM_features/data_w20/mmf_396.shelve >> output_v7/recap.txt | |
4 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/397/ MM_features/data_w20/mmf_397.shelve >> output_v7/recap.txt | |
5 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/43/ MM_features/data_w20/mmf_43.shelve >> output_v7/recap.txt | |
6 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/44/ MM_features/data_w20/mmf_44.shelve >> output_v7/recap.txt | |
7 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/45/ MM_features/data_w20/mmf_45.shelve >> output_v7/recap.txt | |
1 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/394/ MM_features/data_w99/mmf_394.shelve >> output_v8/recap.txt | |
2 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/395/ MM_features/data_w99/mmf_395.shelve >> output_v8/recap.txt | |
3 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/396/ MM_features/data_w99/mmf_396.shelve >> output_v8/recap.txt | |
4 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/397/ MM_features/data_w99/mmf_397.shelve >> output_v8/recap.txt | |
5 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/43/ MM_features/data_w99/mmf_43.shelve >> output_v8/recap.txt | |
6 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/44/ MM_features/data_w99/mmf_44.shelve >> output_v8/recap.txt | |
7 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/45/ MM_features/data_w99/mmf_45.shelve >> output_v8/recap.txt |
LDA/mlp_mmf3.sh
1 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/46/ MM_features/data_w20/mmf_46.shelve >> output_v7/recap.txt | |
2 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/47/ MM_features/data_w20/mmf_47.shelve >> output_v7/recap.txt | |
3 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/48/ MM_features/data_w20/mmf_48.shelve >> output_v7/recap.txt | |
4 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/493/ MM_features/data_w20/mmf_493.shelve >> output_v7/recap.txt | |
5 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/494/ MM_features/data_w20/mmf_494.shelve >> output_v7/recap.txt | |
6 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/495/ MM_features/data_w20/mmf_495.shelve >> output_v7/recap.txt | |
7 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v7/496/ MM_features/data_w20/mmf_496.shelve >> output_v7/recap.txt | |
1 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/46/ MM_features/data_w99/mmf_46.shelve >> output_v8/recap.txt | |
2 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/47/ MM_features/data_w99/mmf_47.shelve >> output_v8/recap.txt | |
3 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/48/ MM_features/data_w99/mmf_48.shelve >> output_v8/recap.txt | |
4 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/493/ MM_features/data_w99/mmf_493.shelve >> output_v8/recap.txt | |
5 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/494/ MM_features/data_w99/mmf_494.shelve >> output_v8/recap.txt | |
6 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/495/ MM_features/data_w99/mmf_495.shelve >> output_v8/recap.txt | |
7 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04a-mmdf.py output_v8/496/ MM_features/data_w99/mmf_496.shelve >> output_v8/recap.txt |
LDA/mlp_mmf4.sh
1 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/497/ MM_features/data_w20/mmf_497.shelve >> output_v7/recap.txt | |
2 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/50/ MM_features/data_w20/mmf_50.shelve >> output_v7/recap.txt | |
3 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/93/ MM_features/data_w20/mmf_93.shelve >> output_v7/recap.txt | |
4 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/94/ MM_features/data_w20/mmf_94.shelve >> output_v7/recap.txt | |
5 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/95/ MM_features/data_w20/mmf_95.shelve >> output_v7/recap.txt | |
6 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/96/ MM_features/data_w20/mmf_96.shelve >> output_v7/recap.txt | |
7 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/97/ MM_features/data_w20/mmf_97.shelve >> output_v7/recap.txt | |
8 | -THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v7/98/ MM_features/data_w20/mmf_98.shelve >> output_v7/recap.txt | |
1 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/497/ MM_features/data_w99/mmf_497.shelve >> output_v8/recap.txt | |
2 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/50/ MM_features/data_w99/mmf_50.shelve >> output_v8/recap.txt | |
3 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/93/ MM_features/data_w99/mmf_93.shelve >> output_v8/recap.txt | |
4 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/94/ MM_features/data_w99/mmf_94.shelve >> output_v8/recap.txt | |
5 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/95/ MM_features/data_w99/mmf_95.shelve >> output_v8/recap.txt | |
6 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/96/ MM_features/data_w99/mmf_96.shelve >> output_v8/recap.txt | |
7 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/97/ MM_features/data_w99/mmf_97.shelve >> output_v8/recap.txt | |
8 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04a-mmdf.py output_v8/98/ MM_features/data_w99/mmf_98.shelve >> output_v8/recap.txt |
LDA/run_mmf.sh
1 | +output_dir=$1 | |
2 | +features=$2 | |
3 | +json_conf=$3 | |
4 | +time ( | |
5 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04b-mmf_mini_ae.py $output_dir $features $json_conf >> $output_dir/miniae.log & | |
6 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04c-mmf_sae.py $output_dir $features $json_conf >> $output_dir/sae.log & | |
7 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu0,floatX=float32 python 04d-mmf_dsae.py $output_dir $features $json_conf >> $output_dir/dsae.log & | |
8 | +THEANO_FLAGS=mode=FAST_RUN,device=gpu1,floatX=float32 python 04e-mm_vae.py $output_dir $features $json_conf >> $output_dir/vae.log & | |
9 | +wait | |
10 | +) |