yufeng0528 4 年之前
父節點
當前提交
7782705227
共有 2 個文件被更改,包括 38 次插入4 次删除
  1. 32 0
      stock/dnn_predict.py
  2. 6 4
      stock/dnn_train.py

+ 32 - 0
stock/dnn_predict.py

@@ -0,0 +1,32 @@
1
+import keras
2
+# -*- encoding:utf-8 -*-
3
+import numpy as np
4
+from keras.models import Sequential
5
+from keras.layers import Dense,Dropout
6
+import random
7
+from keras.models import load_model
8
+
9
+def read_data(path):
10
+    lines = []
11
+    with open(path) as f:
12
+        for line in f.readlines()[:20]:
13
+            lines.append(eval(line.strip()))
14
+
15
+    size = len(lines[0])
16
+    train_x=[s[:size - 2] for s in lines]
17
+    train_y=[s[size-1] for s in lines]
18
+    return np.array(train_x),np.array(train_y)
19
+
20
+test_x,test_y=read_data("D:\\data\\quantization\\stock_test.log")
21
+
22
+path="model_seq.h5"
23
+model=load_model(path)
24
+score = model.evaluate(test_x, test_y)
25
+print(score)
26
+
27
+result=model.predict(test_x)
28
+print(result)
29
+i = 0
30
+for x in test_y:
31
+    print(str(i) + ":" + str(x))
32
+    i = i + 1

+ 6 - 4
stock/dnn_train.py

@@ -11,10 +11,10 @@ def read_data(path):
11 11
     train_y=[]
12 12
     lines = []
13 13
     with open(path) as f:
14
-        for x in range(100000):
14
+        for x in range(20000):
15 15
             lines.append(eval(f.readline().strip()))
16 16
     random.shuffle(lines)
17
-    lines = lines[:80000]
17
+    lines = lines[:8000]
18 18
     d=int(0.95*len(lines))
19 19
 
20 20
     size = len(lines[0])
@@ -30,13 +30,15 @@ model = Sequential()
30 30
 model.add(Dense(units=425, input_dim=166,  activation='relu'))
31 31
 model.add(Dense(units=325, activation='relu'))
32 32
 model.add(Dense(units=325, activation='relu'))
33
+model.add(Dropout(0.2))
33 34
 model.add(Dense(units=225, activation='relu'))
34 35
 model.add(Dense(units=225, activation='relu'))
35 36
 model.add(Dense(units=225, activation='relu'))
36 37
 model.add(Dense(units=225, activation='relu'))
37
-model.add(Dense(units=225, activation='relu'))
38
+model.add(Dropout(0.2))
38 39
 model.add(Dense(units=225, activation='relu'))
39 40
 model.add(Dense(units=125, activation='relu'))
41
+model.add(Dropout(0.2))
40 42
 model.add(Dense(units=125, activation='relu'))
41 43
 model.add(Dense(units=166, activation='relu'))
42 44
 # model.add(Dropout(0.2)(Dense(units=225, activation='relu')))
@@ -44,7 +46,7 @@ model.add(Dense(units=8, activation='softmax'))
44 46
 model.compile(loss='categorical_crossentropy', optimizer="adam",metrics=['accuracy'])
45 47
 
46 48
 print("Starting training ")
47
-h=model.fit(train_x, train_y, batch_size=32, epochs=8, shuffle=True)
49
+h=model.fit(train_x, train_y, batch_size=32, epochs=16, shuffle=True)
48 50
 score = model.evaluate(test_x, test_y)
49 51
 print(score)
50 52
 print('Test score:', score[0])