コード例 #1
0
    parser.add_argument('--lstm_units', type=int, default=128, required=False, help='Hidden unit size')
    parser.add_argument('--char_lstm_units', type=int, default=128, required=False, help='Hidden unit size for Char rnn')
    parser.add_argument('--sentence_length', type=int, default=180, required=False, help='Maximum words in sentence')
    parser.add_argument('--word_length', type=int, default=8, required=False, help='Maximum chars in word')
    parser.add_argument('--num_ensemble', type=int, default=1, required=False, help='Number of submodels')


    try:
        parameter = vars(parser.parse_args())
    except:
        parser.print_help()
        sys.exit(0)

    # Creating various information and training sets using the sentence-specific data set
    train_data = data_loader(parameter["input_dir"])
    train_loader = Dataset(parameter, train_data)
    test_data = data_loader(parameter["input_dir"])
    test_loader = Dataset(parameter, test_data)

    # Load model
    models = []
    for i in range(parameter["num_ensemble"]):
        models.append(Model(train_loader.parameter, i))
        models[i].build_model()

    # tensorflow session init
    sess = tf.Session()
    sess.run(tf.global_variables_initializer())

    # Training
    if parameter["mode"] == "train":
コード例 #2
0
ファイル: main.py プロジェクト: RRoundTable/nlp_ner
    try:
        parameter = vars(parser.parse_args())
    except:
        parser.print_help()
        sys.exit(0)

    # data_loader를 이용해서 전체 데이터셋 가져옴
    if nsml.HAS_DATASET:
        DATASET_PATH = nsml.DATASET_PATH
    else:
        DATASET_PATH = 'data'

    extern_data = []

    # 가져온 문장별 데이터셋을 이용해서 각종 정보 및 학습셋 구성
    dataset = Dataset(parameter, extern_data)  # parameter 입력, extern_data=[]

    # Model 불러오기
    model = Model(dataset.parameter)
    model.build_model()

    # tensorflow session 생성 및 초기화
    sess = tf.Session()
    sess.run(tf.global_variables_initializer())

    # DO NOT CHANGE
    bind_model(sess)
    if parameter["pause"] == 1:
        nsml.paused(scope=locals())

    # 학습
コード例 #3
0
    parser = argparse.ArgumentParser(description=sys.argv[0] + " description")
    parser = config.parse_arg(parser)

    try:
        parameter = vars(parser.parse_args())
    except:
        parser.print_help()
        sys.exit(0)

    # data_loader를 이용해서 전체 데이터셋 가져옴
    DATASET_PATH = './data'

    extern_data = []

    # 가져온 문장별 데이터셋을 이용해서 각종 정보 및 학습셋 구성
    dataset = Dataset(parameter, extern_data)
    dev_dataset = Dataset(parameter, extern_data)

    # Model 불러오기
    if parameter["use_conv_model"]:
        model = ConvModel(dataset.parameter)
        print("[Use Conv with lstm...]")
    else:
        model = Model(dataset.parameter)
        print("[Use original lstm...]")

    model.build_model()

    # tensorflow session 생성 및 초기화
    sess = tf.Session()
    sess.run(tf.global_variables_initializer())
コード例 #4
0
        parameter = vars(parser.parse_args())
    except:
        parser.print_help()
        sys.exit(0)

    # data_loader를 이용해서 전체 데이터셋 가져옴
    DATASET_PATH = 'data'
    # if nsml.HAS_DATASET:
    #     DATASET_PATH = nsml.DATASET_PATH
    # else:
    #     DATASET_PATH = 'data'

    extern_data = []

    # 가져온 문장별 데이터셋을 이용해서 각종 정보 및 학습셋 구성
    dataset = Dataset(parameter, extern_data)

    # Model 불러오기
    model = Model(dataset.parameter)
    model.build_model()

    # tensorflow session 생성 및 초기화
    sess = tf.Session()
    sess.run(tf.global_variables_initializer())

    # DO NOT CHANGE
    # bind_model(sess)
    # if parameter["pause"] == 1:
    #     nsml.paused(scope=locals())

    # 학습
コード例 #5
0
        parameter = vars(parser.parse_args())
    except:
        parser.print_help()
        sys.exit(0)

    # data_loader를 이용해서 전체 데이터셋 가져옴
    if nsml.HAS_DATASET:
        DATASET_PATH = nsml.DATASET_PATH
    else:
        DATASET_PATH = 'data'

    # 가져온 문장별 데이터셋을 이용해서 각종 정보 및 학습셋 구성
    if parameter["mode"] == "train" and not os.path.exists(
            parameter["necessary_file"]):
        extern_data = data_loader(DATASET_PATH)
        Dataset(parameter, extern_data)
    elif parameter['file_append'] and os.path.exists(
            parameter["necessary_file"]):
        extern_data = data_loader(DATASET_PATH)
        Dataset(parameter, extern_data, True)

    test_data = []
    extern_data = []
    dataset = Dataset(parameter, extern_data)
    testset = Dataset(parameter, test_data)

    # Model 불러오기
    models = []
    for i in range(parameter["num_ensemble"]):
        models.append(Model(dataset.parameter, i))
        models[i].build_model()
コード例 #6
0
def NER_test():
    tf.reset_default_graph()
    config = Config()
    parser = argparse.ArgumentParser(description=sys.argv[0] + " description")
    parser = config.parse_arg(parser)
    print("[NER_test...]")

    try:
        parameter = vars(parser.parse_args())
    except:
        parser.print_help()
        sys.exit(0)

    parameter["mode"] = "test"

    # data_loader를 이용해서 전체 데이터셋 가져옴
    DATASET_PATH = './data'  #test data path

    extern_data = []

    if parameter["mode"] == "test":
        extern_data = test_data_loader(DATASET_PATH)
    # 가져온 문장별 데이터셋을 이용해서 각종 정보 및 학습셋 구성

    dataset = Dataset(parameter, extern_data)
    # dev_dataset = Dataset(parameter, extern_data)
    # # Model 불러오기
    #     # if parameter["use_conv_model"]:
    #     #     model = ConvModel(dataset.parameter)
    #     #     print("[Use Conv with lstm...]")
    #     # else:
    #     #     model = Model(dataset.parameter)
    #     #     print("[Use original lstm...]")
    #     # #
    #     # # model.build_model_test()

    dev_size = config.dev_size
    #train_extern_data, dev_extern_data = extern_data[:-dev_size], extern_data[-dev_size:]
    # dataset.make_input_data(train_extern_data)
    #dev_dataset.make_input_data(extern_data)  # For Test set

    best_dev_f1 = 0
    cur_patience = 0
    # use_lr_decay = False

    with tf.Session() as sess:

        saver = tf.train.import_meta_graph('./saved/testmodel.meta')
        saver.restore(sess, tf.train.latest_checkpoint('./saved/'))
        graph = tf.get_default_graph()
        # print all tensors in checkpoint file
        #chkp.print_tensors_in_checkpoint_file("./saved/checkpoint.ckpt", tensor_name='', all_tensors=True)

        # placeholder
        param = {}
        param["morph"] = graph.get_tensor_by_name('morph')
        param["ne_dict"] = graph.get_tensor_by_name('ne_dict')
        param["character"] = graph.get_tensor_by_name('character')
        param["dropout_rate"] = graph.get_tensor_by_name('dropout_rate')
        param["weight_dropout_keep_prob"] = graph.get_tensor_by_name(
            'weight_dropout_keep_prob')
        param["lstm_dropout"] = graph.get_tensor_by_name('lstm_dropout')
        param["label"] = graph.get_tensor_by_name('label')
        param["sequence"] = graph.get_tensor_by_name('sequence')
        param["character_len"] = graph.get_tensor_by_name('character_len')
        param["global_step"] = graph.get_tensor_by_name('global_step')
        param["emb_dropout_keep_prob"] = graph.get_tensor_by_name(
            'emb_dropout_keep_prob')
        param["dense_dropout_keep_prob"] = graph.get_tensor_by_name(
            'dense_dropout_keep_prob')
        param["learning_rate"] = graph.get_tensor_by_name('learning_rate')

        #tensor   model.cost, model.viterbi_sequence, model.train_op
        param["cost"] = graph.get_tensor_by_name('cost')
        param["viterbi_sequence"] = graph.get_tensor_by_name(
            'viterbi_sequence')
        param["train_op"] = graph.get_tensor_by_name('train_op')

        #for epoch in range(parameter["epochs"]):
        #random.shuffle(extern_data)  # 항상 train set shuffle 시켜주자
        dataset.make_input_data(extern_data)

        # Check for test set
        de_avg_cost, de_avg_correct, de_precision_count, de_recall_count = iteration_model_Test(
            dataset, parameter, param, train=False)
        print('[Epoch: {:>4}] cost = {:>.6} Accuracy = {:>.6}'.format(
            epoch + 1, de_avg_cost, de_avg_correct))
        de_f1Measure, de_precision, de_recall = calculation_measure(
            de_precision_count, de_recall_count)
        print('[Test] F1Measure : {:.6f} Precision : {:.6f} Recall : {:.6f}'.
              format(de_f1Measure, de_precision, de_recall))
コード例 #7
0
ファイル: main.py プロジェクト: myseo94/hardfork_my
    try:
        parameter = vars(parser.parse_args())
    except:
        parser.print_help()
        sys.exit(0)

    # data_loader를 이용해서 전체 데이터셋 가져옴
    if nsml.HAS_DATASET:
        DATASET_PATH = nsml.DATASET_PATH
    else:
        DATASET_PATH = 'data'

    extern_data = []
    print('0')
    # 가져온 문장별 데이터셋을 이용해서 각종 정보 및 학습셋 구성
    dataset = Dataset(parameter, extern_data, Use_pretrained = True)
    print('5')

    # Model 불러오기
    model = Model(dataset.parameter)
    model.build_model()

    # tensorflow session 생성 및 초기화
    sess = tf.Session()
    sess.run(tf.global_variables_initializer())

    # DO NOT CHANGE
    bind_model(sess)
    if parameter["pause"] == 1:
        nsml.paused(scope=locals())
コード例 #8
0
        parameter = vars(parser.parse_args())
    except:
        parser.print_help()
        sys.exit(0)

    # data_loader를 이용해서 전체 데이터셋 가져옴
    DATASET_PATH = './data'

    extern_data = []

    # make necessary file if not exist
    if parameter["mode"] == "train" and not os.path.exists(
            parameter["necessary_file"]):
        extern_data = data_loader(DATASET_PATH)
    # 가져온 문장별 데이터셋을 이용해서 각종 정보 및 학습셋 구성
    dataset = Dataset(parameter, extern_data)
    dev_dataset = Dataset(parameter, extern_data)
    test_dataset = Dataset(parameter, extern_data)

    # Model 불러오기
    if parameter["use_conv_model"]:
        model = ConvModel(dataset.parameter)
        print("[Use Conv with lstm...]")
    else:
        model = Model(dataset.parameter)
        print("[Use original lstm...]")

    model.build_model()

    # tensorflow session 생성 및 초기화
    sess = tf.Session()