def testAndValidate(predict_index=0, dis_k=1): # 正确的值 multilabel_list = pre_data_utils.preMultiLabels( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len, isZu, isTest=True) multilabel_list = multilabel_list[pre_data_utils. test_last_index:][predict_index] true_out = [int(i) for i in multilabel_list] # 原输入 dataList, rwld_list = pre_data_utils.preDataAndReWenLengDui( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len, isZu) dataList = dataList[pre_data_utils.test_last_index:][ predict_index] # 从倒数第10个样本作为测试样本 pre_list = pre_data_utils.guiyiDivideX( [dataList], 10.0) # 以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为通道 rwld_list = rwld_list[pre_data_utils.test_last_index:][predict_index] pre_list1 = pre_data_utils.guiyiDivideX([rwld_list], 10.0) rema, rema1, lengma, lengma1, wenma, wenma1, count_argsort = pre_data_utils.countReWenLeng( dataList) # biao_cunt=[str(index)+"("+str(unmber)+")" for index, unmber in enumerate(count)] out = predict_multilabel([pre_list, pre_list1], dis_k) print("dataList", dataList) print("rwld_list", rwld_list) print('全:{}'.format(count_argsort)) print('热:{} 温:{} 冷:{} 热对:{} 温对:{} 冷对:{} '.format( rema, wenma, lengma, rema1, wenma1, lengma1)) print("true_out", true_out) print("out", out)
def testAndValidate(predict_index=0, dis_k=1): # 正确的值 multilabel_list = pre_data_utils.preMultiLabels( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len, isZu, isTest=True) multilabel_list = multilabel_list[pre_data_utils. test_last_index:][predict_index] true_out = [int(i) for i in multilabel_list] # 原输入 dataList = pre_data_utils.preDataForMatrix( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len, isZu) dataList = dataList[pre_data_utils.test_last_index:][ predict_index] # 从倒数第10个样本作为测试样本 pre_list = pre_data_utils.guiyiDivideX( [dataList], 1.0) # 以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为通道 rema, rema1, lengma, lengma1, wenma, wenma1, count_argsort = pre_data_utils.countReWenLeng( dataList) out = predict_multilabel(pre_list, dis_k) print("dataList", dataList) print('全:{}'.format(count_argsort)) print('热:{} 温:{} 冷:{} 热对:{} 温对:{} 冷对:{} '.format( rema, wenma, lengma, rema1, wenma1, lengma1)) print("true_out", true_out) print("out", out)
def testAndValidate(predict_index=0): # 正确的值 y_list = pre_data_utils.preCnnLabelsZu( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len) true_out = y_list[pre_data_utils.test_last_index:][predict_index] _, mydict, dict_reverse = pre_data_utils.genCnnZuDict(y_list) # 原输入 source_list = pre_data_utils.preDataAdd0( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len) source_list = source_list[pre_data_utils.test_last_index:][ predict_index] # 从倒数第10个样本作为测试样本 # 原输入+1 add1_list = pre_data_utils.preDataAdd1( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len) add1_list = add1_list[pre_data_utils.test_last_index:][ predict_index] # 从倒数第10个样本作为测试样本 # 以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为通道 encoder_input = pre_data_utils.guiyiAndChannel([add1_list]) model = keras.models.load_model('model/cnn_组选.h5') predictions = model.predict(encoder_input)[0] argmax = np.argmax(predictions) pre_out = dict_reverse[argmax] print("source_list=", source_list) print("true_out=", true_out) print("pre_out=", pre_out)
def testAndValidate(predict_index=0, dis_k=1): traindata_list, multilabel_list = pre_data_utils.preDataZuHe( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len, isZu) dataList = traindata_list[pre_data_utils.test_last_index:][predict_index] label_list = multilabel_list[pre_data_utils. test_last_index:][predict_index] zuhe_list_x, zuhe_list_y = pre_data_utils.genZuheData( [dataList], [label_list], pre_data_utils.zuhe_len) true_out = zuhe_list_y[0] true_out = [int(i) for i in true_out] # 正确的值 out_list = [] for zuhe_x in zuhe_list_x: train_list = zuhe_x # 原输入 pre_list = pre_data_utils.guiyiDivideX( [train_list], 10.0) # 以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为通道 out = str(predict_multilabel(pre_list, 3)) out_list.append(out) # 找出次数最多的元素。 result = Counter(out_list) most_common = result.most_common(dis_k) result_list = [] for item in most_common: result_list.append(list(item)[0]) print("train_list", train_list) print("true_out", true_out) # print("most_common", most_common) print("result_list", result_list)
def testAndValidate(predict_index=0, k=4, display_k=2): # 正确的值 tgt_in, tgt_out = pre_data_utils.preLabels1(pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len) tgt_out = tgt_out[pre_data_utils.test_last_index:][predict_index] true_out = tgt_out[0:-1] # 原输入 source_list = pre_data_utils.preDataAdd0(pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len) source_list = source_list[pre_data_utils.test_last_index:][predict_index] # 从倒数第10个样本作为测试样本 # 原输入+1 add1_list = pre_data_utils.preDataJiouDaxiao012(pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len) add1_list = add1_list[pre_data_utils.test_last_index:][predict_index] # 从倒数第10个样本作为测试样本 # 以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为通道 encoder_input = pre_data_utils.guiyiDivideX([add1_list],7.0) out = predict_multilabel(encoder_input, encoder_infer, decoder_infer, pre_data_utils.tgt_out_len, k, display_k) print("source_list", source_list) print("true_out", true_out) # print("add1_list", add1_list) print("out", out)
def testAndValidate(predict_index=0, dis_k=1): # 正确的值 multilabel_list = pre_data_utils.preMultiLabels( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len, isZu, isTest=True) multilabel_list = multilabel_list[pre_data_utils. test_last_index:][predict_index] true_out = [int(i) for i in multilabel_list] # 原输入 dataList = pre_data_utils.preDataAdd0(pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len, isZu) dataList = dataList[pre_data_utils.test_last_index:][ predict_index] # 从倒数第10个样本作为测试样本 pre_list = pre_data_utils.guiyiDivideX( [dataList], 10.0) # 以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为通道 out = predict_multilabel(pre_list, dis_k) print("dataList", dataList) print("true_out", true_out) print("out", out)
from py_nn_999.net import cnn_multilabel_net from tensorflow import keras from py_nn_999.utils import pre_data_utils from tensorflow.keras.callbacks import Callback import tensorflow.keras.backend as K isZu = pre_data_utils.isZu # 是否组选 # 训练数据处理 traindata_list, multilabel_list = pre_data_utils.preDataZuHe(pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len,isZu) print("traindata_list数量:", len(traindata_list)) print("multilabel_list数量:",len(multilabel_list)) dataList = traindata_list[pre_data_utils.train_first_index:pre_data_utils.train_last_index] # 从0至倒数第10个样本作为训练,剩下的作为测试样本 label_list = multilabel_list[pre_data_utils.train_first_index:pre_data_utils.train_last_index] print("dataList数量:", len(dataList)) print("label_list数量:",len(label_list)) zuhe_list_x, zuhe_list_y = pre_data_utils.genZuheData(dataList, label_list, pre_data_utils.zuhe_len) print("zuhe_list_x数量:", len(zuhe_list_x)) print("zuhe_list_y数量:",len(zuhe_list_y)) # 训练数据 ,以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为通道 传入4维列表 4维度list转数组 train_list = pre_data_utils.guiyiDivideX(zuhe_list_x, 10.0) # 标签(多标签)处理 multilabel_vec = pre_data_utils.gen_multilabel_vec(zuhe_list_y, isZu) # Keras中的6种accuracy介绍:https://zhuanlan.zhihu.com/p/95293440 model_train = cnn_multilabel_net.CNNMultiLabelZuHeModel(piece_len=pre_data_utils.zuhe_len, piece_width=3, depth=1, isZu=isZu) int_lr = 0.1
from py_nn_999.net import seq2seq_cnn2lstm_net from tensorflow import keras from py_nn_999.utils import pre_data_utils import numpy as np from tensorflow.keras.callbacks import Callback import tensorflow.keras.backend as K # 源数据(编码器数据)处理 dataList = pre_data_utils.preDataAdd1(pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len) dataList = dataList[pre_data_utils.train_first_index:pre_data_utils. train_last_index] # 从0至倒数第10个样本作为训练,剩下的作为测试样本 # 以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为通道 传入4维列表 4维度list转数组 encoder_input = pre_data_utils.guiyiAndChannel(dataList) # 目标数据(解码器数据)处理 tgt_in, tgt_out = pre_data_utils.preLabels1( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len) #数据载入 tgt_in = tgt_in[pre_data_utils.train_first_index: pre_data_utils.train_last_index] # 从0至倒数第10个样本作为训练,剩下的作为测试样本 tgt_out = tgt_out[pre_data_utils.train_first_index: pre_data_utils.train_last_index] # 从0至倒数第10个样本作为训练,剩下的作为测试样本 decoder_input = np.array(tgt_in) decoder_output = pre_data_utils.gen_sequence_targt( tgt_out, pre_data_utils.tgt_out_len, pre_data_utils.tgt_vocab_size) model_train = seq2seq_cnn2lstm_net.Seq2Seq_CNN2LSTM(pre_data_utils.piece_len) optimizer = keras.optimizers.Adam(0.005) # 经过测试,0.005的学习率对目前任务效果最佳 model_train.compile(optimizer=optimizer, loss='categorical_crossentropy', metrics=['accuracy'])
from py_nn_999.net import cnn_net from py_nn_999.utils import pre_data_utils from tensorflow import keras from tensorflow.keras.callbacks import Callback import tensorflow.keras.backend as K import numpy as np # 训练数据处理 dataList = pre_data_utils.preDataAdd1(pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len) dataList = dataList[pre_data_utils.train_first_index:pre_data_utils. train_last_index] # 从0至倒数第10个样本作为训练,剩下的作为测试样本 # 以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为通道 传入4维列表 4维度list转数组 encoder_input = pre_data_utils.guiyiAndChannel(dataList) # 标签处理 y_list = pre_data_utils.preCnnLabelsZu(pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len) #数据载入 y_list = y_list[pre_data_utils.train_first_index:pre_data_utils. train_last_index] char_len, mydict, _ = pre_data_utils.genCnnZuDict(y_list) train_y = pre_data_utils.genCnnZuY(y_list, mydict) y_train = keras.utils.to_categorical(train_y, num_classes=char_len, dtype='int') # one-hot编码 model_train = cnn_net.CNNNet(pre_data_utils.piece_len, char_len) model_train.summary() optimizer = keras.optimizers.Adam(0.005)
from py_nn_999.net import cnn_multilabel_net from tensorflow import keras from py_nn_999.utils import pre_data_utils from tensorflow.keras.callbacks import Callback import tensorflow.keras.backend as K isZu = pre_data_utils.isZu # 是否组选 # 训练数据处理 dataList = pre_data_utils.preDataAndRWL1(pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len, isZu) dataList = dataList[pre_data_utils.train_first_index:pre_data_utils.train_last_index] # 从0至倒数第10个样本作为训练,剩下的作为测试样本 train_list = pre_data_utils.guiyiDivideX(dataList, 1.0) # 以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为通道 传入4维列表 4维度list转数组 # 标签(多标签)处理 multilabel_list = pre_data_utils.preMultiLabels(pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len, isZu) #数据载入 multilabel_list = multilabel_list[pre_data_utils.train_first_index:pre_data_utils.train_last_index] # 从0至倒数第10个样本作为训练,剩下的作为测试样本 multilabel_vec = pre_data_utils.gen_multilabel_vec(multilabel_list, isZu) # Keras中的6种accuracy介绍:https://zhuanlan.zhihu.com/p/95293440 model_train = cnn_multilabel_net.CNNMultiLabelModel(piece_len=pre_data_utils.piece_len, piece_width=pre_data_utils.piece_width, depth=1, isZu=isZu) optimizer = keras.optimizers.Adam(0.005) # 经过测试,0.005的学习率对目前任务效果最佳 model_train.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy']) model_train.summary() # 自定义回调类,当loss小于某个值时,学习率设为0,不再更新,避免越过最优值 class LossHistory(Callback): # 继承自Callback类 def on_epoch_end(self, batch, logs={}): print("\r") loss = logs.get('loss') if loss < 5e-04:
from py_nn_999.net import cnn_multilabel_net from tensorflow import keras from py_nn_999.utils import pre_data_utils from tensorflow.keras.callbacks import Callback import tensorflow.keras.backend as K isZu = pre_data_utils.isZu # 是否组选 # 训练数据处理 dataList = pre_data_utils.preDataForMatrix( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len, isZu) dataList = dataList[pre_data_utils.train_first_index:pre_data_utils. train_last_index] # 从0至倒数第10个样本作为训练,剩下的作为测试样本 train_list = pre_data_utils.guiyiDivideX( dataList, 1.0) # 以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为通道 传入4维列表 4维度list转数组 # 标签(多标签)处理 multilabel_list = pre_data_utils.preMultiLabels( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len, isZu) #数据载入 multilabel_list = multilabel_list[ pre_data_utils.train_first_index: pre_data_utils.train_last_index] # 从0至倒数第10个样本作为训练,剩下的作为测试样本 multilabel_vec = pre_data_utils.gen_multilabel_vec(multilabel_list, isZu) # Keras中的6种accuracy介绍:https://zhuanlan.zhihu.com/p/95293440 model_train = cnn_multilabel_net.CNNMultiMatrixModel( piece_len=pre_data_utils.piece_len, piece_width=10, depth=1, isZu=isZu) optimizer = keras.optimizers.Adam(0.005) # 经过测试,0.005的学习率对目前任务效果最佳 model_train.compile(optimizer=optimizer,
from py_nn_999.net import cnn2lstm_multilabel_net from tensorflow import keras from py_nn_999.utils import pre_data_utils import numpy as np from tensorflow.keras.callbacks import Callback import tensorflow.keras.backend as K # 源数据(编码器数据)处理 dataList = pre_data_utils.preDataJiouDaxiao012( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len) dataList = dataList[pre_data_utils.train_first_index:pre_data_utils. train_last_index] # 从0至倒数第10个样本作为训练,剩下的作为测试样本 # 以下代码将其归一化到0-1之间的浮点数,并在最后增加一维作为通道 传入4维列表 4维度list转数组 encoder_input = pre_data_utils.guiyiDivideX(dataList, 7.0) # 目标数据(解码器数据)处理 tgt_in, tgt_out = pre_data_utils.preLabels1( pre_data_utils.read_txt_data_train(), pre_data_utils.piece_len) #数据载入 tgt_in = tgt_in[pre_data_utils.train_first_index: pre_data_utils.train_last_index] # 从0至倒数第10个样本作为训练,剩下的作为测试样本 tgt_out = tgt_out[pre_data_utils.train_first_index: pre_data_utils.train_last_index] # 从0至倒数第10个样本作为训练,剩下的作为测试样本 decoder_input = np.array(tgt_in) # decoder_output = pre_data_utils.gen_sequence_targt(tgt_out,pre_data_utils.tgt_out_len,pre_data_utils.tgt_vocab_size) decoder_output = pre_data_utils.gen_seq_multilabel(tgt_out) # Keras中的6种accuracy介绍:https://zhuanlan.zhihu.com/p/95293440 model_train = cnn2lstm_multilabel_net.CNN2LSTM_MultiLabel( pre_data_utils.piece_len, 3) optimizer = keras.optimizers.Adam(0.005) # 经过测试,0.005的学习率对目前任务效果最佳 model_train.compile(optimizer=optimizer,