Browse Source

训练神经元

yufeng 4 years ago
parent
commit
c7d86704a1
1 changed files with 17 additions and 17 deletions
  1. 17 17
      stock/dnn_train_dmi.py

+ 17 - 17
stock/dnn_train_dmi.py

@@ -19,7 +19,7 @@ def read_data(path):
19 19
     random.shuffle(lines)
20 20
     print('读取数据完毕')
21 21
 
22
-    d=int(0.89*len(lines))
22
+    d=int(0.81*len(lines))
23 23
 
24 24
     size = len(lines[0])
25 25
     train_x=[s[:size - 2] for s in lines[0:d]]
@@ -43,7 +43,7 @@ def resample(path, suffix='test'):
43 43
     lines = []
44 44
     with open(data_dir + path + '.log') as f:
45 45
         i = 0
46
-        for x in range(84000): # 63万 13万 8.4万
46
+        for x in range(64000): # 56万 11万 6.4万
47 47
             # print(i)
48 48
             lines.append(eval(f.readline().strip()))
49 49
             i = i + 1
@@ -59,7 +59,7 @@ def resample(path, suffix='test'):
59 59
         v = line[1:x*k + 1]
60 60
         v = np.array(v)
61 61
         v = v.reshape(k, x)
62
-        v = v[:,4:8]
62
+        v = v[:,6:10]
63 63
         v = v.reshape(1, 4*k)
64 64
         # print(v)
65 65
         r = estimator.predict(v)
@@ -67,9 +67,9 @@ def resample(path, suffix='test'):
67 67
 
68 68
 
69 69
 def mul_train(name="10_18d"):
70
-    for x in range(0, 12):
71
-    # for x in [3,6,10]:
72
-        score = train(input_dim=440, result_class=5, file_path=data_dir + "kmeans\\stock"+ name + "_train_" + str(x) + ".log",
70
+    # for x in range(8, 12):
71
+    for x in [2, 4, 6, 8]:
72
+        score = train(input_dim=439, result_class=5, file_path=data_dir + "kmeans\\stock"+ name + "_train_" + str(x) + ".log",
73 73
               model_name=name + '_dnn_seq_' + str(x) + '.h5')
74 74
 
75 75
         with open(data_dir + 'stock' + name + '_dmi.log', 'a') as f:
@@ -80,24 +80,24 @@ def train(input_dim=400, result_class=3, file_path="D:\\data\\quantization\\stoc
80 80
     train_x,train_y,test_x,test_y=read_data(file_path)
81 81
 
82 82
     model = Sequential()
83
-    model.add(Dense(units=120+input_dim, input_dim=input_dim,  activation='relu', kernel_regularizer=regularizers.l1(0.003)))
84
-    model.add(Dense(units=120+input_dim, activation='relu'))
83
+    model.add(Dense(units=220+input_dim, input_dim=input_dim,  activation='relu', kernel_regularizer=regularizers.l1(0.003)))
84
+    model.add(Dense(units=220+input_dim, activation='relu'))
85 85
     model.add(Dropout(0.2))
86
-    model.add(Dense(units=120+input_dim, activation='relu'))
87
-    model.add(Dense(units=120+input_dim, activation='relu'))
88
-    model.add(Dense(units=120+input_dim, activation='relu',kernel_regularizer=regularizers.l1(0.002)))
86
+    model.add(Dense(units=220+input_dim, activation='relu'))
87
+    model.add(Dense(units=220+input_dim, activation='relu'))
88
+    model.add(Dense(units=220+input_dim, activation='relu',kernel_regularizer=regularizers.l1(0.002)))
89 89
     model.add(Dropout(0.2))
90 90
     model.add(Dense(units=120 + input_dim, activation='relu'))
91
-    model.add(Dropout(0.2))
92
-    model.add(Dense(units=120+input_dim, activation='selu'))
91
+    # model.add(Dropout(0.2))
92
+    # model.add(Dense(units=120+input_dim, activation='selu'))
93 93
     # model.add(Dense(units=120+input_dim, activation='selu'))
94
-    model.add(Dense(units=512, activation='relu'))
94
+    model.add(Dense(units=1024, activation='relu'))
95 95
 
96 96
     model.add(Dense(units=result_class, activation='softmax'))
97 97
     model.compile(loss='categorical_crossentropy', optimizer="adam",metrics=['accuracy'])
98 98
 
99 99
     print("Starting training ")
100
-    model.fit(train_x, train_y, batch_size=4096*4, epochs=600 + 4*int(len(train_x)/1200), shuffle=True)
100
+    model.fit(train_x, train_y, batch_size=4096*4, epochs=550 + 4*int(len(train_x)/1000), shuffle=True)
101 101
     score = model.evaluate(test_x, test_y)
102 102
     print(score)
103 103
     print('Test score:', score[0])
@@ -115,5 +115,5 @@ def train(input_dim=400, result_class=3, file_path="D:\\data\\quantization\\stoc
115 115
 
116 116
 
117 117
 if __name__ == '__main__':
118
-    # resample('stock14_18d_test', suffix='test')
119
-    mul_train('14_18d')
118
+    resample('stock15_18d_test', suffix='test')
119
+    # mul_train('15_18d')