Skip to content
This repository was archived by the owner on Jul 7, 2023. It is now read-only.

Commit 8aca9fb

Browse files
author
Ryan Sepassi
committed
v1.0.4
1 parent e34d664 commit 8aca9fb

22 files changed

+1060
-712
lines changed

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg)](CO
1111
[T2T](https://github.com/tensorflow/tensor2tensor) is a modular and extensible
1212
library and binaries for supervised learning with TensorFlow and with support
1313
for sequence tasks. It is actively used and maintained by researchers and
14-
engineers within the Google Brain team.
14+
engineers within the Google Brain team. You can read more about Tensor2Tensor in
15+
the recent [Google Research Blog post introducing
16+
it](https://research.googleblog.com/2017/06/accelerating-deep-learning-research.html).
1517

1618
We're eager to collaborate with you on extending T2T, so please feel
1719
free to [open an issue on
@@ -50,6 +52,7 @@ mkdir -p $DATA_DIR $TMP_DIR $TRAIN_DIR
5052
t2t-datagen \
5153
--data_dir=$DATA_DIR \
5254
--tmp_dir=$TMP_DIR \
55+
--num_shards=100 \
5356
--problem=$PROBLEM
5457
5558
mv $TMP_DIR/tokens.vocab.32768 $DATA_DIR

setup.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setup(
77
name='tensor2tensor',
8-
version='1.0.3',
8+
version='1.0.4',
99
description='Tensor2Tensor',
1010
author='Google Inc.',
1111
author_email='no-reply@google.com',
@@ -26,4 +26,4 @@
2626
'License :: OSI Approved :: Apache Software License',
2727
'Topic :: Scientific/Engineering :: Artificial Intelligence',
2828
],
29-
keywords='tensorflow',)
29+
keywords='tensorflow machine learning',)

tensor2tensor/bin/t2t-datagen

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ flags.DEFINE_string("tmp_dir", "/tmp/t2t_datagen",
5151
"Temporary storage directory.")
5252
flags.DEFINE_string("problem", "",
5353
"The name of the problem to generate data for.")
54-
flags.DEFINE_integer("num_shards", 1, "How many shards to use.")
54+
flags.DEFINE_integer("num_shards", 10, "How many shards to use.")
5555
flags.DEFINE_integer("max_cases", 0,
5656
"Maximum number of cases to generate (unbounded if 0).")
5757
flags.DEFINE_integer("random_seed", 429459, "Random seed to use.")

tensor2tensor/data_generators/algorithmic.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def identity_generator(nbr_symbols, max_length, nbr_cases):
4343
for _ in xrange(nbr_cases):
4444
l = np.random.randint(max_length) + 1
4545
inputs = [np.random.randint(nbr_symbols) + 2 for _ in xrange(l)]
46-
yield {"inputs": inputs, "targets": inputs}
46+
yield {"inputs": inputs, "targets": inputs + [1]} # [1] for EOS
4747

4848

4949
def shift_generator(nbr_symbols, shift, max_length, nbr_cases):
@@ -66,7 +66,8 @@ def shift_generator(nbr_symbols, shift, max_length, nbr_cases):
6666
for _ in xrange(nbr_cases):
6767
l = np.random.randint(max_length) + 1
6868
inputs = [np.random.randint(nbr_symbols - shift) + 2 for _ in xrange(l)]
69-
yield {"inputs": inputs, "targets": [i + shift for i in inputs]}
69+
yield {"inputs": inputs,
70+
"targets": [i + shift for i in inputs] + [1]} # [1] for EOS
7071

7172

7273
def reverse_generator(nbr_symbols, max_length, nbr_cases):
@@ -88,7 +89,8 @@ def reverse_generator(nbr_symbols, max_length, nbr_cases):
8889
for _ in xrange(nbr_cases):
8990
l = np.random.randint(max_length) + 1
9091
inputs = [np.random.randint(nbr_symbols) + 2 for _ in xrange(l)]
91-
yield {"inputs": inputs, "targets": list(reversed(inputs))}
92+
yield {"inputs": inputs,
93+
"targets": list(reversed(inputs)) + [1]} # [1] for EOS
9294

9395

9496
def lower_endian_to_number(l, base):
@@ -141,7 +143,7 @@ def addition_generator(base, max_length, nbr_cases):
141143
# We shift digits by 1 on input and output to leave 0 for padding.
142144
inputs = [i + 2 for i in n1] + [base + 2] + [i + 2 for i in n2]
143145
targets = [i + 2 for i in number_to_lower_endian(result, base)]
144-
yield {"inputs": inputs, "targets": targets}
146+
yield {"inputs": inputs, "targets": targets + [1]} # [1] for EOS
145147

146148

147149
def multiplication_generator(base, max_length, nbr_cases):
@@ -175,4 +177,4 @@ def multiplication_generator(base, max_length, nbr_cases):
175177
# We shift digits by 1 on input and output to leave 0 for padding.
176178
inputs = [i + 2 for i in n1] + [base + 2] + [i + 2 for i in n2]
177179
targets = [i + 2 for i in number_to_lower_endian(result, base)]
178-
yield {"inputs": inputs, "targets": targets}
180+
yield {"inputs": inputs, "targets": targets + [1]} # [1] for EOS

tensor2tensor/data_generators/algorithmic_test.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ def testIdentityGenerator(self):
3131
counter = 0
3232
for d in algorithmic.identity_generator(3, 8, 10):
3333
counter += 1
34-
self.assertEqual(d["inputs"], d["targets"])
34+
self.assertEqual(d["inputs"] + [1], d["targets"])
3535
self.assertEqual(counter, 10)
3636

3737
def testReverseGenerator(self):
3838
counter = 0
3939
for d in algorithmic.reverse_generator(3, 8, 10):
4040
counter += 1
41-
self.assertEqual(list(reversed(d["inputs"])), d["targets"])
41+
self.assertEqual(list(reversed(d["inputs"])) + [1], d["targets"])
4242
self.assertEqual(counter, 10)
4343

4444
def testLowerEndianToNumber(self):
@@ -63,19 +63,19 @@ def testAdditionGenerator(self):
6363
counter = 0
6464
for d in algorithmic.addition_generator(4, 8, 10):
6565
counter += 1
66-
self.assertEqual(d["inputs"].count(5), 1)
66+
self.assertEqual(d["inputs"].count(6), 1)
6767
self.assertEqual(d["inputs"].count(0), 0)
68-
self.assertEqual(d["targets"].count(5), 0)
68+
self.assertEqual(d["targets"].count(6), 0)
6969
self.assertEqual(d["targets"].count(0), 0)
7070
self.assertEqual(counter, 10)
7171

7272
def testMultiplicationGenerator(self):
7373
counter = 0
7474
for d in algorithmic.multiplication_generator(4, 8, 10):
7575
counter += 1
76-
self.assertEqual(d["inputs"].count(5), 1)
76+
self.assertEqual(d["inputs"].count(6), 1)
7777
self.assertEqual(d["inputs"].count(0), 0)
78-
self.assertEqual(d["targets"].count(5), 0)
78+
self.assertEqual(d["targets"].count(6), 0)
7979
self.assertEqual(d["targets"].count(0), 0)
8080
self.assertEqual(counter, 10)
8181

0 commit comments

Comments
 (0)