| import torch | |
| import pandas as pd | |
| from sklearn.model_selection import train_test_split | |
| class GetDataSet(object): | |
| def __init__(self): | |
| self.train_data = None | |
| self.train_label = None | |
| self.test_data = None | |
| self.test_label = None | |
| self.copdDataSetConstruct() | |
| def copdDataSetConstruct(self): | |
| data = pd.read_csv('408-h2.csv',encoding='gbk') | |
| x = data.drop(['id','level'], axis=1) | |
| y = data['level'] | |
| x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.4, random_state=5) # random_state 随机种子 | |
| #print(x_train) | |
| #print(y_train) | |
| x_tr = x_train.loc[:].values | |
| y_tr = y_train.loc[:].values | |
| x_te = x_test.loc[:].values | |
| y_te = y_test.loc[:].values | |
| self.train_data = x_tr | |
| self.train_label = y_tr | |
| self.test_data = x_te | |
| self.test_label = y_te | |
| class Neuro_net(torch.nn.Module): | |
| def __init__(self): | |
| super(Neuro_net, self).__init__() | |
| self.layer1 = torch.nn.Linear(40, 20) | |
| self.layer2 = torch.nn.Linear(20, 10) | |
| self.layer3 = torch.nn.Linear(10, 5) | |
| self.layer4 = torch.nn.Linear(5, 2) | |
| self.layer5 = torch.nn.Softmax(dim=0) | |
| def forward(self, input): | |
| tensor = torch.relu(self.layer1(input)) | |
| tensor = torch.relu(self.layer2(tensor)) | |
| tensor = torch.relu(self.layer3(tensor)) | |
| tensor = self.layer4(tensor) | |
| tensor = self.layer5(tensor) | |
| return tensor | |
| def load_model(fl,input): | |
| # data_test_h1 = GetDataSet() | |
| # data_test_h1.test_data[0] = input | |
| # input = data_test_h1.test_data | |
| if fl == "Yes": | |
| model = torch.load("net_gb.pt") | |
| print(fl) | |
| print(input) | |
| # input = torch.from_numpy(input).to(torch.float32) | |
| # model.eval() | |
| with torch.no_grad(): | |
| # output = model(torch.tensor([0.0,0.0,87.0,5.0,36.9,81.0,33.0,138.0,62.0,0.0,0.0,2.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,2.0,2.0,2.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,2.0,1.0])) | |
| output = model(torch.tensor(input)) | |
| print(output) | |
| # print(len([0.0,0.0,87.0,5.0,36.9,81.0,33.0,138.0,62.0,0.0,0.0,2.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,2.0,2.0,2.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,2.0,1.0])) | |
| pridect_h1_y = torch.max(output,dim=0)[1] | |
| pridect_h1_label = pridect_h1_y.data.numpy() | |
| print(pridect_h1_y) | |
| if int(pridect_h1_label)==1: | |
| return "FL predict: Height." | |
| else: | |
| return "FL predict: Low." | |
| else:#55 60 | |
| model_h1 = torch.load("net_h1.pt") | |
| model_h2 = torch.load("net_h2.pt") | |
| model_h3 = torch.load("net_h3.pt") | |
| print(fl) | |
| print(input) | |
| # input = torch.from_numpy(input).to(torch.float32) | |
| model_h1.eval() | |
| model_h2.eval() | |
| model_h3.eval() | |
| with torch.no_grad(): | |
| # output = model(torch.tensor(1.0,1.0,64.0,2.0,37.1,98.0,20.0,120.0,70.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,1.0,2.0,2.0,1.0,2.0,0.0,2.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0)) | |
| output_h1 = model_h1(torch.tensor(input)) | |
| output_h2 = model_h2(torch.tensor(input)) | |
| output_h3 = model_h3(torch.tensor(input)) | |
| print(output_h1) | |
| print(output_h2) | |
| print(output_h3) | |
| # print(len([0.0,0.0,87.0,5.0,36.9,81.0,33.0,138.0,62.0,0.0,0.0,2.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,2.0,2.0,2.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,2.0,1.0])) | |
| # print(len(output_h1)) | |
| pridect_h1_y = torch.max(output_h1,dim = 0)[1] | |
| pridect_h1_label = pridect_h1_y.data.numpy() | |
| pridect_h2_y = torch.max(output_h2,dim = 0)[1] | |
| pridect_h2_label = pridect_h2_y.data.numpy() | |
| pridect_h3_y = torch.max(output_h3,dim = 0)[1] | |
| pridect_h3_label = pridect_h3_y.data.numpy() | |
| # print(pridect_h1_y) | |
| # print(pridect_h2_y) | |
| # print(pridect_h3_y) | |
| print(pridect_h1_label) | |
| print(pridect_h2_label) | |
| print(pridect_h3_label) | |
| output = "" | |
| if int(pridect_h1_label) == 1: | |
| print("sick") | |
| output +="H1 predict: Height.\n" | |
| else: | |
| print("no sick") | |
| output += "H1 predict: Low.\n" | |
| if int(pridect_h2_label) == 1: | |
| print("sick") | |
| output += "H2 predict: Height.\n" | |
| else: | |
| print("no sick") | |
| output += "H2 predict: Low.\n" | |
| if int(pridect_h3_label) == 1: | |
| print("sick") | |
| output += "H3 predict: Height.\n" | |
| else: | |
| print("no sick") | |
| output += "H3 predict: Low.\n" | |
| return output | |
| # def load_model(fl,input): | |
| # # data_test_h1 = GetDataSet() | |
| # # data_test_h1.test_data[0] = input | |
| # # input = data_test_h1.test_data | |
| # if fl == "Yes": | |
| # model = torch.load("net_gb.pt") | |
| # print(fl) | |
| # print(input) | |
| # input = torch.from_numpy(input).to(torch.float32) | |
| # # model.eval() | |
| # with torch.no_grad(): | |
| # # output = model(torch.tensor([0.0,0.0,87.0,5.0,36.9,81.0,33.0,138.0,62.0,0.0,0.0,2.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,2.0,2.0,2.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,2.0,1.0])) | |
| # output = model(torch.tensor(input)) | |
| # print(output) | |
| # # print(len([0.0,0.0,87.0,5.0,36.9,81.0,33.0,138.0,62.0,0.0,0.0,2.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,2.0,2.0,2.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,2.0,1.0])) | |
| # pridect_h1_y = torch.max(output,dim=1)[1] | |
| # pridect_h1_label = pridect_h1_y.data.numpy() | |
| # print(pridect_h1_y) | |
| # if int(pridect_h1_label[0])==1: | |
| # return "FL predict: Height." | |
| # else: | |
| # return "FL predict: Low." | |
| # else: | |
| # model_h1 = torch.load("net_h1.pt") | |
| # model_h2 = torch.load("net_h2.pt") | |
| # model_h3 = torch.load("net_h3.pt") | |
| # print(fl) | |
| # print(input) | |
| # input = torch.from_numpy(input).to(torch.float32) | |
| # model_h1.eval() | |
| # model_h2.eval() | |
| # model_h3.eval() | |
| # with torch.no_grad(): | |
| # # output = model(torch.tensor(1.0,1.0,64.0,2.0,37.1,98.0,20.0,120.0,70.0,3.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,1.0,2.0,2.0,1.0,2.0,0.0,2.0,0.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0)) | |
| # output_h1 = model_h1(torch.tensor(input)) | |
| # output_h2 = model_h2(torch.tensor(input)) | |
| # output_h3 = model_h3(torch.tensor(input)) | |
| # print(output_h1) | |
| # print(output_h2) | |
| # print(output_h3) | |
| # # print(len([0.0,0.0,87.0,5.0,36.9,81.0,33.0,138.0,62.0,0.0,0.0,2.0,2.0,2.0,0.0,0.0,0.0,0.0,0.0,2.0,1.0,0.0,0.0,1.0,2.0,2.0,2.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,0.0,2.0,2.0,1.0])) | |
| # # print(len(output_h1)) | |
| # pridect_h1_y = torch.max(output_h1,dim = 1)[1] | |
| # pridect_h1_label = pridect_h1_y.data.numpy() | |
| # pridect_h2_y = torch.max(output_h2,dim = 1)[1] | |
| # pridect_h2_label = pridect_h2_y.data.numpy() | |
| # pridect_h3_y = torch.max(output_h3,dim = 1)[1] | |
| # pridect_h3_label = pridect_h3_y.data.numpy() | |
| # # print(pridect_h1_y) | |
| # # print(pridect_h2_y) | |
| # # print(pridect_h3_y) | |
| # print(pridect_h1_label) | |
| # print(pridect_h2_label) | |
| # print(pridect_h3_label) | |
| # output = "" | |
| # if int(pridect_h1_label[0]) == 1: | |
| # print("sick") | |
| # output +="H1 predict: Height.\n" | |
| # else: | |
| # print("no sick") | |
| # output += "H1 predict: Low.\n" | |
| # if int(pridect_h2_label[0]) == 1: | |
| # print("sick") | |
| # output += "H2 predict: Height.\n" | |
| # else: | |
| # print("no sick") | |
| # output += "H2 predict: Low.\n" | |
| # if int(pridect_h3_label[0]) == 1: | |
| # print("sick") | |
| # output += "H3 predict: Height.\n" | |
| # else: | |
| # print("no sick") | |
| # output += "H3 predict: Low.\n" | |
| # return output | |
| # print(data_test_h1.train_data[0]) | |
| # print(len(data_test_h1.train_data)) | |
| # test_h1_x = torch.from_numpy(data_test_h1.test_data).float() | |
| # test_h1_y = torch.tensor(data_test_h1.test_label) | |
| # a = [1.0,1.0,78.0,7.0,37.3,110.0,21.0,130.0,81.0,3.0,0.0,2.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,2.0,0.0,2.0,1.0,1.0,2.0,2.0,1.0,0.0,0.0,0.0,2.0,2.0,1.0,2.0,1.0,1.0,1.0,2.0,1.0] | |
| # data_test_h1.train_data[0] = a | |
| # print(data_test_h1.train_data[25]) | |
| # print(load_model("No",data_test_h1.train_data)) | |
| # print(load_model("Yes",data_test_h1.train_data)) | |
| # print("=============================") |