Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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)
Пример #5
0
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
Пример #8
0
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'])
Пример #9
0
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)

Пример #10
0
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:
Пример #11
0
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,