Skip to content

Commit 575ce7a

Browse files
author
Giuseppe Attardi
committed
See ChangeLog.
1 parent 1bc6f9d commit 575ce7a

30 files changed

+10814
-8593
lines changed

‎ChangeLog‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1+
2016-01-06 Giuseppe Attardi <attardi@di.unipi.it>
2+
3+
* deepnl/trainer.pyx (train): initialize AdaGrad accumulators by adaEps.
4+
5+
* deepnl/extractors.pyx (Extractor.adaGradInit): initialize with adaEps.
6+
7+
* bin/dl-conv.py (main): added option --eps.
8+
9+
2015-12-24 Giuseppe Attardi <attardi@di.unipi.it>
10+
11+
* deepnl/networkconv.pyx (backpropagate): use MultiMarginCriterion
12+
also for computing gradients.
13+
14+
2015-12-18 Giuseppe Attardi <attardi@di.unipi.it>
15+
16+
* deepnl/utils.py (create_feature_tables): removed.
17+
18+
* bin/dl-sentiwords.py (create_trainer): consider parameter --window
19+
as left/right context, consistently with word2vec.
20+
* bin/dl-conv.py (main): idem.
21+
* bin/dl-ner.py (main): idem.
22+
* bin/dl-pos.py (main): idem.
23+
* bin/dl-words.py (main): idem.
24+
125
2015-11-18 Giuseppe Attardi <attardi@di.unipi.it>
226

327
* bin/dl-conv.py (main): added options text_field and label_field

‎bin/dl-conv.py‎

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,15 @@ def create_trainer(args, converter, labels):
5050
logger.info('Creating new network...')
5151
# sum the number of features in all extractors' tables
5252
feat_size = converter.size()
53-
pool_size = args.window
53+
pool_size = args.window * 2 + 1
5454
nn = ConvolutionalNetwork(feat_size * pool_size, args.hidden,
5555
args.hidden2, len(labels), pool_size)
5656
options = {
5757
'learning_rate': args.learning_rate,
58+
'eps': args.eps,
5859
'verbose': args.verbose,
59-
'left_context': args.window/2,
60-
'right_context': args.window/2
60+
'left_context': args.window,
61+
'right_context': args.window
6162
}
6263
trainer = ConvTrainer(nn, converter, labels, options)
6364

@@ -109,31 +110,33 @@ def main():
109110
format = parser.add_argument_group('Format')
110111

111112
format.add_argument('--label-field', type=int, default=1,
112-
help='Field containing label.')
113+
help='Field containing label (default %(default)s).')
113114
format.add_argument('--text-field', type=int, default=2,
114-
help='Field containing text.')
115+
help='Field containing text (default %(default)s).')
115116

116117
# training options
117118
train = parser.add_argument_group('Train')
118119

119120
train.add_argument('-t', '--train', type=str, default=None,
120-
help='File with annotated data for training.')
121+
help='File with annotated data for training.')
121122

122123
train.add_argument('-w', '--window', type=int, default=5,
123-
help='Size of the word window (default %(default)s)')
124+
help='Size of the word window (default %(default)s)')
124125
train.add_argument('-s', '--embeddings-size', type=int, default=50,
125-
help='Number of features per word (default %(default)s)',
126-
dest='embeddings_size')
126+
help='Number of features per word (default %(default)s)',
127+
dest='embeddings_size')
127128
train.add_argument('-e', '--epochs', type=int, default=100,
128-
help='Number of training epochs (default %(default)s)',
129-
dest='iterations')
129+
help='Number of training epochs (default %(default)s)',
130+
dest='iterations')
130131
train.add_argument('-l', '--learning_rate', type=float, default=0.001,
131-
help='Learning rate for network weights (default %(default)s)',
132-
dest='learning_rate')
132+
help='Learning rate for network weights (default %(default)s)',
133+
dest='learning_rate')
134+
train.add_argument('--eps', type=float, default=1e-6,
135+
help='Epsilon value for AdaGrad (default %(default)s)')
133136
train.add_argument('-n', '--hidden', type=int, default=200,
134-
help='Number of hidden neurons (default %(default)s)')
137+
help='Number of hidden neurons (default %(default)s)')
135138
train.add_argument('-n2', '--hidden2', type=int, default=200,
136-
help='Number of hidden neurons (default %(default)s)')
139+
help='Number of hidden neurons (default %(default)s)')
137140

138141
# Extractors:
139142
extractors = parser.add_argument_group('Extractors')
@@ -189,7 +192,7 @@ def main():
189192
sentences = reader.read(args.train)
190193

191194
if args.vocab and os.path.exists(args.vocab):
192-
if args.vectors and os.path.exists(args.vectors):
195+
if args.vectors and os.path.exists(args.vectors):
193196
# use supplied embeddings
194197
embeddings = Embeddings(vectors=args.vectors, vocab_file=args.vocab,
195198
variant=args.variant)
@@ -285,7 +288,7 @@ def main():
285288
labels_index = {}
286289
labels = []
287290
for i,c in enumerate(set(sent_labels)):
288-
labels_index[c] = i
291+
labels_index[c] = i
289292
labels.append(c)
290293
trainer = create_trainer(args, converter, labels)
291294
logger.info("Starting training with %d examples" % len(examples))

‎bin/dl-ner.py‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,15 @@ def create_trainer(args, converter, tag_index):
4949
else:
5050
logger.info('Creating new network...')
5151
# sum the number of features in all tables
52-
input_size = converter.size() * args.window
52+
input_size = converter.size() * args.window * 2 + 1
5353
nn = SequenceNetwork(input_size, args.hidden, len(tag_index))
5454
options = {
5555
'learning_rate': args.learning_rate,
5656
'eps': args.eps,
5757
'ro': args.ro,
5858
'verbose': args.verbose,
59-
'left_context': args.window/2,
60-
'right_context': args.window/2
59+
'left_context': args.window,
60+
'right_context': args.window
6161
}
6262
trainer = TaggerTrainer(nn, converter, tag_index, options)
6363

@@ -108,7 +108,7 @@ def main():
108108
train = parser.add_argument_group('Train')
109109
train.add_argument('-t', '--train', type=str, default='',
110110
help='File with annotated data for training.')
111-
train.add_argument('-w', '--window', type=int, default=5,
111+
train.add_argument('-w', '--window', type=int, default=2,
112112
help='Size of the word window (default %(default)s)')
113113
train.add_argument('-s', '--embeddings-size', type=int, default=50,
114114
help='Number of features per word (default %(default)s)',

‎bin/dl-pos.py‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ def create_trainer(args, converter, tag_index):
4848
else:
4949
logger.info('Creating new network...')
5050
# sum the number of features in all tables
51-
input_size = converter.size() * args.window
51+
input_size = converter.size() * args.window * 2 + 1
5252
nn = SequenceNetwork(input_size, args.hidden, len(tag_index))
5353
options = {
5454
'learning_rate': args.learning_rate,
5555
'eps': args.eps,
5656
'ro': args.ro,
5757
'verbose': args.verbose,
58-
'left_context': args.window/2,
59-
'right_context': args.window/2
58+
'left_context': args.window,
59+
'right_context': args.window
6060
}
6161
trainer = TaggerTrainer(nn, converter, tag_index, options)
6262

@@ -112,7 +112,7 @@ def main():
112112
train.add_argument('-t', '--train', type=str, default=None,
113113
help='File with annotated data for training.')
114114

115-
train.add_argument('-w', '--window', type=int, default=5,
115+
train.add_argument('-w', '--window', type=int, default=2,
116116
help='Size of the word window (default %(default)s)')
117117
train.add_argument('-s', '--embeddings-size', type=int, default=50,
118118
help='Number of features per word (default %(default)s)',

‎bin/dl-sentiwords.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,15 @@ def create_trainer(args, converter):
4747
else:
4848
logger.info('Creating new network...')
4949
# sum the number of features in all extractors' tables
50-
input_size = converter.size() * args.window
50+
input_size = converter.size() * args.window * 2 + 1
5151
nn = Network(input_size, args.hidden, 2)
5252
options = {
5353
'learning_rate': args.learning_rate,
5454
'eps': args.eps,
5555
'ro': args.ro,
5656
'verbose': args.verbose,
57-
'left_context': args.window/2,
58-
'right_context': args.window/2,
57+
'left_context': args.window,
58+
'right_context': args.window,
5959
'ngram_size': args.ngrams,
6060
'alpha': args.alpha
6161
}

‎bin/dl-words.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ def create_trainer(args, converter):
4646
else:
4747
logger.info('Creating new network...')
4848
# sum the number of features in all extractors' tables
49-
input_size = converter.size() * args.windows
49+
input_size = converter.size() * args.windows * 2 + 1
5050
nn = LmNetwork(input_size, args.hidden, 1)
5151
options = {
5252
'learning_rate': args.learning_rate,
5353
'eps': args.eps,
5454
'ro': args.ro,
5555
'verbose': args.verbose,
56-
'left_context': args.window/2,
57-
'right_context': args.window/2,
56+
'left_context': args.window,
57+
'right_context': args.window,
5858
'ngram_size': args.ngrams
5959
}
6060
trainer = LmTrainer(nn, converter, options)

‎deepnl/classifier.cpp‎

Lines changed: 9 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)