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=window_size) # モデル #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=max_epoch, batch_size=batch_size) # plot trainer.plot('chap4_ptb.png') # 単語の分散表現保存 params = {} params['word_vecs'] = model.word_vecs.astype(np.float16) params['word_to_id'] = word_to_id params['id_to_word'] = id_to_word #fname = 'cbow_params.pkl' fname = 'skip_gram_params.pkl' with open(fname, 'wb') as f: pickle.dump(params, f, -1)
if __name__ == '__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=window_size) contexts = convert_one_hot(contexts, vocab_size=vocab_size) target = convert_one_hot(target, vocab_size=vocab_size) # モデル #model = SimpleCBOW(vocab_size, hidden_size) model = SimpleSkipGram(vocab_size, hidden_size) optimizer = Adam() #optimizer = SGD() # 学習 trainer = Trainer(model, optimizer) trainer.fit(contexts, target, max_epoch=max_epoch, batch_size=batch_size) # plot trainer.plot('chap3.png') # 単語の分散表現print for word, word_id in word_to_id.items(): print('{0} {1}'.format(word, model.word_vecs[word_id]))
# coding: utf-8 import sys from trainers import Trainer from two_layers_net import TwoLayersNet from optimizers import SGD from dataset import spiral if __name__ == '__main__': max_epoch = 300 batch_size = 30 hidden_size = 10 learning_rate = 1.0 # データ, モデル, optimizer x, t = spiral.load_data() model = TwoLayersNet(input_size=2, hidden_size=hidden_size, output_size=3) opt = SGD(learning_rate) # 学習 trainer = Trainer(model, opt) trainer.fit(x, t, max_epoch, batch_size, eval_interval=10) # plot trainer.plot('chap1.png')