Hello! I've found a performance issue in baselines/models/xlnet/data_utils.py: dataset = dataset.batch(bsz_per_core, drop_remainder=True)(here) should be called before dataset = dataset.cache().map(parser).repeat()(here), which could make your program more efficient.
To reproduce the behavior, you need to swap the order of dataset = dataset.batch(bsz_per_core, drop_remainder=True) and dataset = dataset.cache().map(parser).repeat() in data_utils.py. Besides, you need to check the function parser(here) called in dataset = dataset.cache().map(parser).repeat() whether to be affected or not to make the changed code work properly. For example, if parser needs data with shape (x, y, z) as its input before fix, it would require data with shape (batch_size, x, y, z) after fix.
Looking forward to your reply. Btw, I am very glad to create a PR to fix it if you are too busy.
Hello! I've found a performance issue in baselines/models/xlnet/data_utils.py:
dataset = dataset.batch(bsz_per_core, drop_remainder=True)
(here) should be called beforedataset = dataset.cache().map(parser).repeat()
(here), which could make your program more efficient.Here is the tensorflow document to support it.
To reproduce the behavior, you need to swap the order of
dataset = dataset.batch(bsz_per_core, drop_remainder=True)
anddataset = dataset.cache().map(parser).repeat()
in data_utils.py. Besides, you need to check the functionparser
(here) called indataset = dataset.cache().map(parser).repeat()
whether to be affected or not to make the changed code work properly. For example, ifparser
needs data with shape (x, y, z) as its input before fix, it would require data with shape (batch_size, x, y, z) after fix.Looking forward to your reply. Btw, I am very glad to create a PR to fix it if you are too busy.