batch_size = 20 wordvec_size = 200 hidden_size = 200 #RNNの隠れ状態ベクトルの要素数 time_size = 35 #RNNを展開するサイズ lr = 20.0 max_epoch = 10 max_grad = 0.25 dropout = 0.5 #学習データの読み込み file_name = "./text/owakachi.txt" file = open(file_name, encoding='utf-8') corpus, word_to_id, id_to_word = preprocess(file) if config.GPU: corpus = to_gpu(corpus) #corpus_test = preprocess(file) vocab_size = len(word_to_id) #print(vocab_size) #print(word_to_id) xs = corpus[:-1] ts = corpus[1:] #モデルの生成 model = BetterLstmlm(vocab_size, wordvec_size, hidden_size, dropout) optimizer = SGD(lr) trainer = RnnlmTrainer(model, optimizer) #モデルの学習 best_ppl = float('inf')
batch_size = 20 wordvec_size = 650 hidden_size = 650 time_size = 35 lr = 20.0 max_epoch = 40 max_grad = 0.25 dropout = 0.5 # 学習データの読み込み corpus, word_to_id, id_to_word = ptb.load_data('train') corpus_val, _, _ = ptb.load_data('val') corpus_test, _, _ = ptb.load_data('test') if config.GPU: corpus = to_gpu(corpus) corpus_val = to_gpu(corpus_val) corpus_test = to_gpu(corpus_test) vocab_size = len(word_to_id) xs = corpus[:-1] ts = corpus[1:] model = BetterRnnlm(vocab_size, wordvec_size, hidden_size, dropout) optimizer = SGD(lr) trainer = RnnlmTrainer(model, optimizer) best_ppl = float('inf') for epoch in range(max_epoch): trainer.fit(xs, ts, max_epoch=1, batch_size=batch_size, time_size=time_size, max_grad=max_grad)
# 하이퍼파라미터 설정 batch_size = 20 wordvec_size = 100 hidden_size = 100 # RNN의 은닉 상태 벡터의 원소 수 time_size = 35 # RNN을 펼치는 크기 lr = 20.0 max_epoch = 4 max_grad = 0.25 # 학습 데이터 읽기 corpus, word_to_id, id_to_word = ptb.load_data('train') corpus_test, _, _ = ptb.load_data('test') if config.GPU: corpus = to_gpu(corpus) corpus_test = to_gpu(corpus_test) vocab_size = len(word_to_id) xs = corpus[:-1] ts = corpus[1:] # 모델 생성 model = Rnnlm(vocab_size, wordvec_size, hidden_size) optimizer = SGD(lr) trainer = RnnlmTrainer(model, optimizer) # 기울기 클리핑을 적용하여 학습 trainer.fit(xs, ts, max_epoch, batch_size, time_size, max_grad, eval_interval=20) trainer.plot(ylim=(0, 500))
from dataset import ptb # ハイパーパラメータの設定 window_size = 5 hidden_size = 100 batch_size = 100 max_epoch = 10 # データの読み込み corpus, word_to_id, id_to_word = ptb.load_data('train') vocab_size = len(word_to_id) contexts, target = create_contexts_target(corpus, window_size) if config.GPU: contexts, target = to_gpu(contexts), to_gpu(target) # モデルなどの生成 model = CBOW(vocab_size, hidden_size, window_size, corpus) # model = SkipGram(vocab_size, hidden_size, window_size, corpus) optimizer = Adam() trainer = Trainer(model, optimizer) # 学習開始 trainer.fit(contexts, target, max_epoch, batch_size) trainer.plot() # 後ほど利用できるように、必要なデータを保存 word_vecs = model.word_vecs if config.GPU: word_vecs = to_cpu(word_vecs)
hidden_size = 300 time_size = 10 lr = 0.01 max_epoch = 5 max_grad = 5.0 dropout = 0.5 # 학습 데이터 읽기 preprocessing.load_data('../dataset/ChatbotData.csv', scaled_size=False) corpus_val, corpus_train = preprocessing.divide_test_train( preprocessing.corpus, test_rate=0.1) corpus_test, corpus_train = preprocessing.divide_test_train(corpus_train, test_rate=0.1) if config.GPU: corpus = to_gpu(corpus_train) corpus_val = to_gpu(corpus_val) corpus_test = to_gpu(corpus_test) vocab_size = len(preprocessing.word_to_id) xs = sum(corpus_train, [])[:-1] ts = sum(corpus_train, [])[1:] corpus_val = sum(corpus_val, []) corpus_test = sum(corpus_test, []) model = BetterRnnlm(vocab_size, wordvec_size, hidden_size, dropout) # optimizer = SGD(lr) optimizer = Adam(lr=lr) trainer = RnnlmTrainer(model, optimizer)