12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import keras
- # -*- encoding:utf-8 -*-
- import numpy as np
- from keras.models import Sequential
- from keras.layers import Dense,Dropout
- import random
- from keras.models import load_model
- lines = []
- def read_data(path):
- with open(path) as f:
- for line in f.readlines()[:]:
- lines.append(eval(line.strip()))
- train_x=[s[:-2] for s in lines]
- train_y=[s[-1] for s in lines]
- return np.array(train_x),np.array(train_y)
- def predict():
- test_x,test_y=read_data("D:\\data\\quantization\\stock6_test.log")
- test_x = test_x.reshape(test_x.shape[0], 1,80,5)
- path="15min_cnn_seq.h5"
- model=load_model(path)
- score = model.evaluate(test_x, test_y)
- print('CNN', score)
- result=model.predict(test_x)
- # print(result)
- up_num = 0
- up_right = 0
- i = 0
- for r in result:
- fact = test_y[i]
- if r[0] > 0.5:
- if fact[0] == 1:
- up_right = up_right + 1
- elif fact[1] == 1:
- up_right = up_right + 0.2
- up_num = up_num + 1
- i = i + 1
- print('CNN', up_right, up_num, up_right/up_num) # 预测涨的正确率
- i = 0
- win_dnn = []
- for r in result:
- if r[0] > 0.5:
- # print(lines[i][-2])
- win_dnn.append([lines[i][-2], lines[i][-1]])
- i = i + 1
- return win_dnn
- if __name__ == '__main__':
- predict()
|