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