def main(): # ハイパーパラメータの設定 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) # モデルなどの生成 model = CBOW(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 params = {} params['word_vecs'] = word_vecs.astype(np.float16) params['word_to_id'] = word_to_id params['id_to_word'] = id_to_word pkl_file = 'cbow_params.pkl' with open(pkl_file, 'wb') as f: pickle.dump(params, f, -1)
def main(): max_epoch = 300 batch_size = 30 hidden_size = 10 output_size = 3 learning_rate = 1.0 x, t = spiral.load_data() model = TwoLayerNet(2, hidden_size, output_size) optimizer = SGD(learning_rate) trainer = Trainer(model, optimizer) trainer.fit(x, t, max_epoch, batch_size) trainer.plot()
def main(): window_size = 1 hidden_size = 5 batch_size = 3 max_epoch = 1000 text = 'You say goodbye and I say hello.' corpus, word_to_id, id_to_word = preprocess(text) vocab_size = len(word_to_id) contexts, target = create_contexts_target(corpus, window_size) target = convert_one_hot(target, vocab_size) contexts = convert_one_hot(contexts, vocab_size) model = SimpleCBOW(vocab_size, hidden_size) optimizer = Adam() trainer = Trainer(model, optimizer) trainer.fit(contexts, target, max_epoch, batch_size) trainer.plot()
def test_train_word2vec_model(): """word2vecモデルの学習 """ window_size = 1 hidden_size = 5 # 単語の分散表現ベクトルの次元数 batch_size = 3 max_epoch = 1000 text = 'You say goodbye and I say hello.' # コーパスの作成 corpus, word_to_id, id_to_word = preprocess(text) # コンテキストとターゲットの作成 vocab_size = len(word_to_id) contexts, target = create_context_target(corpus, window_size) target = convert_one_hot(target, vocab_size) contexts = convert_one_hot(contexts, vocab_size) print("one-hot target: ", target) print("one-hot contexts: ", contexts) # CBOWモデル model = SimpleCBOW(vocab_size, hidden_size) optimizer = Adam() # trainer trainer = Trainer(model, optimizer) # 学習 trainer.fit(contexts, target, max_epoch=max_epoch, batch_size=batch_size) trainer.plot() # CBOWの重み(W_in)を取得する word_vecs = model.word_vecs for word_id, word in id_to_word.items(): print(word, word_vecs[word_id])
max_epoch = 1000 text = 'You say goodbye and I say hello.' corpus, word_to_id, id_to_word = preprocess(text) vocab_size = len(word_to_id) contexts, target = create_contexts_target, convert_one_hot window_size = 1 hidden_size = 5 batch_size = 3 max_epoch = 1000 text = 'You say goodbye and I say hello.' corpus, word_to_id, id_to_word = preprocess(text) vocab_size = len(word_to_id) contexts, target = create_contexts_target(corpus, window_size) target = convert_one_hot(target, vocab_size) contexts = convert_one_hot(contexts, vocab_size) model = SimpleCBOW(vocab_size, hidden_size) optimizer = Adam() trainer = Trainer(model, optimizer) trainer.fit(contexts, target, max_epoch, batch_size) trainer.plot() word_vecs = model.word_vecs for word_id, word in id_to_word.items(): print(word, word_vecs[word_id])
x_test, t_test, guess_test, encoding=encoding) # Save result as csv as utf-8 with BOM # Excelで文字化けさせたくない場合はこっちで保存 result_train_csv = save_dir / ("result_" + dataset_name + "_" + modelname + "_train_bom.csv") result_test_csv = save_dir / ("result_" + dataset_name + "_" + modelname + "_test_bom.csv") df_result_train = seq.result_to_csv(result_train_csv, x_train, t_train, guess_train, encoding="utf_8_sig") df_result_test = seq.result_to_csv(result_test_csv, x_test, t_test, guess_test, encoding="utf_8_sig") # Plot learning curve and save it as png image image_path = save_dir / ('result_' + dataset_name + "_" + modelname + '.png') trainer.plot(image_path=image_path, log_scale=False) # Save parameters pickle_path = model_dir / (dataset_name + "_" + modelname + '_epoch' + max_epoch + "_" + timestamp + '.pkl') model.save_params(file_name=pickle_path)
import sys sys.path.append("..") from common.trainer import Trainer from common.optimizer import Adam from simple_cbow import SimpleCBOW from common.util import preprocess, create_contexts_target, convert_one_hot window_size = 1 hidden_size = 5 batch_size = 3 max_epoch = 1000 text = 'You say goodbye and I say hello .' corpus, word_to_id, id_to_word = preprocess(text) vocab_size = len(word_to_id) contexts, target = create_contexts_target(corpus, window_size) target = convert_one_hot(target, vocab_size) contexts = convert_one_hot(contexts, vocab_size) model = SimpleCBOW(vocab_size, hidden_size) optimizer = Adam() trainer = Trainer(model, optimizer) trainer.fit(contexts, target, max_epoch, batch_size) trainer.plot(path='../output/03-train.png') word_vecs = model.word_vecs for word_id, word in id_to_word.items(): print(word, word_vecs[word_id])
import sys sys.path.append("..") from common.trainer import Trainer from common.optimizer import Adam from simple_skip_gram import SimpleSkipGram from common.util import preprocess, create_contexts_target, convert_one_hot window_size = 1 hidden_size = 5 batch_size = 3 max_epoch = 1000 text = 'You say goodbye and I say hello .' corpus, word_to_id, id_to_word = preprocess(text) vocab_size = len(word_to_id) contexts, target = create_contexts_target(corpus, window_size) target = convert_one_hot(target, vocab_size) contexts = convert_one_hot(contexts, vocab_size) model = SimpleSkipGram(vocab_size, hidden_size) optimizer = Adam() trainer = Trainer(model, optimizer) trainer.fit(contexts, target, max_epoch, batch_size) trainer.plot(path='../output/03-train_skip_gram.png') word_vecs = model.word_vecs for word_id, word in id_to_word.items(): print(word, word_vecs[word_id])
# model = AttentionSeq2seq(vocab_size, wordvec_size, hidden_size) optimizer = Adam() trainer = Trainer(model, optimizer) print("Cross Validation: iter", str(i+1)) # Train trainer.fit(x_train, t_train, x_test, t_test, max_epoch=max_epoch, batch_size=batch_size, max_grad=max_grad) # Inference start_id = seq.start_id sample_size = seq.sample_size guess_train = model.generate(x_train, start_id, sample_size) guess_test = model.generate(x_test, start_id, sample_size) # Save result as csv suffix = "_cv" + str(i + 1) result_train_csv = result_dir / ("result_" + dataset_name + "_" + model.__class__.__name__ + "_train"+ suffix +".csv") result_test_csv = result_dir / ("result_" + dataset_name + "_" + model.__class__.__name__ + "_test"+ suffix +".csv") seq.result_to_csv(result_train_csv, x_train, t_train, guess_train, encoding=encoding) seq.result_to_csv(result_test_csv, x_test, t_test, guess_test, encoding=encoding) # Plot learning curve and save it as png image image_path = result_dir / ('result_' + dataset_name + "_" + model.__class__.__name__ + suffix + '.png') trainer.plot(image_path) # release memory del model, optimizer, trainer
# coding: utf-8 import sys sys.path.append('..') # 親ディレクトリのファイルをインポートするための設定 from common.optimizer import SGD from common.trainer import Trainer from dataset import spiral from two_layer_net import TwoLayerNet # ハイパーパラメータの設定 max_epoch = 300 batch_size = 30 hidden_size = 10 learning_rate = 1.0 x, t = spiral.load_data() model = TwoLayerNet(input_size=2, hidden_size=hidden_size, output_size=3) optimizer = SGD(lr=learning_rate) trainer = Trainer(model, optimizer) trainer.fit(x, t, max_epoch, batch_size, eval_interval=10) trainer.plot(path='../output/01-plot.png')