Ver código fonte

加入正则项

yufeng0528 4 anos atrás
pai
commit
a7bc22215d
1 arquivos alterados com 11 adições e 10 exclusões
  1. 11 10
      stock/dnn_train.py

+ 11 - 10
stock/dnn_train.py

@@ -4,6 +4,7 @@ import numpy as np
4 4
 from keras.models import Sequential
5 5
 from keras.layers import Dense,Dropout
6 6
 import random
7
+from keras import regularizers
7 8
 from keras.models import load_model
8 9
 from imblearn.over_sampling import RandomOverSampler
9 10
 
@@ -11,7 +12,7 @@ from imblearn.over_sampling import RandomOverSampler
11 12
 def read_data(path):
12 13
     lines = []
13 14
     with open(path) as f:
14
-        for x in range(10000):
15
+        for x in range(100000):
15 16
             lines.append(eval(f.readline().strip()))
16 17
 
17 18
     random.shuffle(lines)
@@ -39,20 +40,20 @@ def train(input_dim=400, result_class=3, file_path="D:\\data\\quantization\\stoc
39 40
     train_x,train_y,test_x,test_y=read_data(file_path)
40 41
 
41 42
     model = Sequential()
42
-    model.add(Dense(units=425, input_dim=input_dim,  activation='relu'))
43
-    model.add(Dense(units=325, activation='relu'))
44
-    model.add(Dense(units=325, activation='relu'))
43
+    model.add(Dense(units=120+input_dim, input_dim=input_dim,  activation='relu'))
44
+    # model.add(Dense(units=60+int(input_dim/2), activation='relu'))
45
+    model.add(Dense(units=60+input_dim, activation='relu',kernel_regularizer=regularizers.l2(0.01)))
45 46
     model.add(Dropout(0.2))
46
-    model.add(Dense(units=325, activation='relu'))
47
-    model.add(Dropout(0.2))
48
-    model.add(Dense(units=325, activation='relu'))
47
+    model.add(Dense(units=60+input_dim, activation='relu',kernel_regularizer=regularizers.l2(0.01)))
49 48
     model.add(Dropout(0.2))
49
+    model.add(Dense(units=60+input_dim, activation='relu'))
50
+    # model.add(Dropout(0.2))
50 51
     model.add(Dense(units=512, activation='relu'))
51 52
     model.add(Dense(units=result_class, activation='softmax'))
52 53
     model.compile(loss='categorical_crossentropy', optimizer="adam",metrics=['accuracy'])
53 54
 
54 55
     print("Starting training ")
55
-    h=model.fit(train_x, train_y, batch_size=64, epochs=26, shuffle=True)
56
+    h=model.fit(train_x, train_y, batch_size=64, epochs=126, shuffle=True)
56 57
     score = model.evaluate(test_x, test_y)
57 58
     print(score)
58 59
     print('Test score:', score[0])
@@ -68,5 +69,5 @@ def train(input_dim=400, result_class=3, file_path="D:\\data\\quantization\\stoc
68 69
 
69 70
 
70 71
 if __name__ == '__main__':
71
-    # train(input_dim=46, result_class=5, file_path="D:\\data\\quantization\\stock6_5.log", model_name='5d_dnn_seq.h5')
72
-    train(input_dim=400, result_class=3, file_path="D:\\data\\quantization\\stock6.log", model_name='15m_dnn_seq.h5')
72
+    train(input_dim=46, result_class=5, file_path="D:\\data\\quantization\\stock6_5.log", model_name='5d_dnn_seq.h5')
73
+    # train(input_dim=400, result_class=3, file_path="D:\\data\\quantization\\stock6.log", model_name='15m_dnn_seq.h5')