parlai/agents/memnn/memnn.py
Killed 54 out of 114 mutantsSurvived
Survived mutation testing. These mutants show holes in your test suite.Mutant 1
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -24,7 +24,6 @@
- 'adam' seems to work very poorly compared to 'sgd' for hogwild training
"""
- @staticmethod
def add_cmdline_args(argparser):
arg_group = argparser.add_argument_group('MemNN Arguments')
arg_group.add_argument(
Mutant 2
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -26,7 +26,7 @@
@staticmethod
def add_cmdline_args(argparser):
- arg_group = argparser.add_argument_group('MemNN Arguments')
+ arg_group = argparser.add_argument_group('XXMemNN ArgumentsXX')
arg_group.add_argument(
'-esz',
'--embedding-size',
Mutant 6
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -31,7 +31,7 @@
'-esz',
'--embedding-size',
type=int,
- default=128,
+ default=129,
help='size of token embeddings',
)
arg_group.add_argument(
Mutant 7
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -32,7 +32,7 @@
'--embedding-size',
type=int,
default=128,
- help='size of token embeddings',
+ help='XXsize of token embeddingsXX',
)
arg_group.add_argument(
'-hops', '--hops', type=int, default=3, help='number of memory hops'
Mutant 10
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -35,7 +35,7 @@
help='size of token embeddings',
)
arg_group.add_argument(
- '-hops', '--hops', type=int, default=3, help='number of memory hops'
+ '-hops', '--hops', type=int, default=4, help='number of memory hops'
)
arg_group.add_argument(
'--memsize',
Mutant 11
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -35,7 +35,7 @@
help='size of token embeddings',
)
arg_group.add_argument(
- '-hops', '--hops', type=int, default=3, help='number of memory hops'
+ '-hops', '--hops', type=int, default=3, help='XXnumber of memory hopsXX'
)
arg_group.add_argument(
'--memsize',
Mutant 13
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -40,7 +40,7 @@
arg_group.add_argument(
'--memsize',
type=int,
- default=32,
+ default=33,
help='size of memory, set to 0 for "nomemnn" model which just '
'embeds query and candidates and picks most similar candidate',
)
Mutant 14
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -41,7 +41,7 @@
'--memsize',
type=int,
default=32,
- help='size of memory, set to 0 for "nomemnn" model which just '
+ help='XXsize of memory, set to 0 for "nomemnn" model which just XX'
'embeds query and candidates and picks most similar candidate',
)
arg_group.add_argument(
Mutant 18
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -48,7 +48,7 @@
'-tf',
'--time-features',
type='bool',
- default=True,
+ default=False,
help='use time features for memory embeddings',
)
arg_group.add_argument(
Mutant 19
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -49,7 +49,7 @@
'--time-features',
type='bool',
default=True,
- help='use time features for memory embeddings',
+ help='XXuse time features for memory embeddingsXX',
)
arg_group.add_argument(
'-pe',
Mutant 23
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -55,7 +55,7 @@
'-pe',
'--position-encoding',
type='bool',
- default=False,
+ default=True,
help='use position encoding instead of bag of words embedding',
)
argparser.set_defaults(
Mutant 24
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -56,7 +56,7 @@
'--position-encoding',
type='bool',
default=False,
- help='use position encoding instead of bag of words embedding',
+ help='XXuse position encoding instead of bag of words embeddingXX',
)
argparser.set_defaults(
split_lines=True, add_p1_after_newln=True, encode_candidate_vecs=True
Mutant 25
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -59,7 +59,7 @@
help='use position encoding instead of bag of words embedding',
)
argparser.set_defaults(
- split_lines=True, add_p1_after_newln=True, encode_candidate_vecs=True
+ split_lines=False, add_p1_after_newln=True, encode_candidate_vecs=True
)
TorchRankerAgent.add_cmdline_args(argparser)
MemnnAgent.dictionary_class().add_cmdline_args(argparser)
Mutant 26
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -59,7 +59,7 @@
help='use position encoding instead of bag of words embedding',
)
argparser.set_defaults(
- split_lines=True, add_p1_after_newln=True, encode_candidate_vecs=True
+ split_lines=True, add_p1_after_newln=False, encode_candidate_vecs=True
)
TorchRankerAgent.add_cmdline_args(argparser)
MemnnAgent.dictionary_class().add_cmdline_args(argparser)
Mutant 27
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -59,7 +59,7 @@
help='use position encoding instead of bag of words embedding',
)
argparser.set_defaults(
- split_lines=True, add_p1_after_newln=True, encode_candidate_vecs=True
+ split_lines=True, add_p1_after_newln=True, encode_candidate_vecs=False
)
TorchRankerAgent.add_cmdline_args(argparser)
MemnnAgent.dictionary_class().add_cmdline_args(argparser)
Mutant 28
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -66,7 +66,7 @@
return arg_group
def __init__(self, opt, shared=None):
- self.id = 'MemNN'
+ self.id = 'XXMemNNXX'
self.memsize = opt['memsize']
if self.memsize < 0:
self.memsize = 0
Mutant 29
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -66,7 +66,7 @@
return arg_group
def __init__(self, opt, shared=None):
- self.id = 'MemNN'
+ self.id = None
self.memsize = opt['memsize']
if self.memsize < 0:
self.memsize = 0
Mutant 32
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -68,7 +68,7 @@
def __init__(self, opt, shared=None):
self.id = 'MemNN'
self.memsize = opt['memsize']
- if self.memsize < 0:
+ if self.memsize <= 0:
self.memsize = 0
self.use_time_features = opt['time_features']
super().__init__(opt, shared)
Mutant 33
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -68,7 +68,7 @@
def __init__(self, opt, shared=None):
self.id = 'MemNN'
self.memsize = opt['memsize']
- if self.memsize < 0:
+ if self.memsize < 1:
self.memsize = 0
self.use_time_features = opt['time_features']
super().__init__(opt, shared)
Mutant 35
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -70,7 +70,7 @@
self.memsize = opt['memsize']
if self.memsize < 0:
self.memsize = 0
- self.use_time_features = opt['time_features']
+ self.use_time_features = None
super().__init__(opt, shared)
def build_dictionary(self):
Mutant 37
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -81,7 +81,7 @@
if self.use_time_features:
# add time features to dictionary before building the model
for i in range(self.memsize):
- d[self._time_feature(i)] = 100_000_000 + i
+ d[self._time_feature(i)] = 100000001 + i
return d
def build_model(self):
Mutant 38
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -81,7 +81,7 @@
if self.use_time_features:
# add time features to dictionary before building the model
for i in range(self.memsize):
- d[self._time_feature(i)] = 100_000_000 + i
+ d[self._time_feature(i)] = 100_000_000 - i
return d
def build_model(self):
Mutant 50
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -110,7 +110,7 @@
return self.model.answer_embedder(padded_cands)
def score_candidates(self, batch, cand_vecs, cand_encs=None):
- mems = self._build_mems(batch.memory_vecs)
+ mems = None
# Check for rows that have no non-null tokens
pad_mask = None
if mems is not None:
Mutant 51
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -112,7 +112,7 @@
def score_candidates(self, batch, cand_vecs, cand_encs=None):
mems = self._build_mems(batch.memory_vecs)
# Check for rows that have no non-null tokens
- pad_mask = None
+ pad_mask = ""
if mems is not None:
pad_mask = (mems != self.NULL_IDX).sum(dim=-1) == 0
Mutant 57
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -123,8 +123,7 @@
scores = self._score(state, cand_encs)
return scores
-
- @lru_cache(maxsize=None) # bounded by opt['memsize'], cache string concats
+ # bounded by opt['memsize'], cache string concats
def _time_feature(self, i):
"""
Return time feature token at specified index.
Mutant 58
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -129,7 +129,7 @@
"""
Return time feature token at specified index.
"""
- return '__tf{}__'.format(i)
+ return 'XX__tf{}__XX'.format(i)
def vectorize(self, *args, **kwargs):
"""
Mutant 61
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -135,7 +135,7 @@
"""
Override options in vectorize from parent.
"""
- kwargs['add_start'] = False
+ kwargs['add_start'] = None
kwargs['add_end'] = False
return super().vectorize(*args, **kwargs)
Mutant 63
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -136,7 +136,7 @@
Override options in vectorize from parent.
"""
kwargs['add_start'] = False
- kwargs['add_end'] = False
+ kwargs['add_end'] = True
return super().vectorize(*args, **kwargs)
def batchify(self, obs_batch, sort=False):
Mutant 64
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -136,7 +136,7 @@
Override options in vectorize from parent.
"""
kwargs['add_start'] = False
- kwargs['add_end'] = False
+ kwargs['add_end'] = None
return super().vectorize(*args, **kwargs)
def batchify(self, obs_batch, sort=False):
Mutant 65
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -139,7 +139,7 @@
kwargs['add_end'] = False
return super().vectorize(*args, **kwargs)
- def batchify(self, obs_batch, sort=False):
+ def batchify(self, obs_batch, sort=True):
"""
Override so that we can add memories to the Batch object.
"""
Mutant 69
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -148,7 +148,7 @@
# get valid observations
valid_obs = [(i, ex) for i, ex in enumerate(obs_batch) if self.is_valid(ex)]
- if len(valid_obs) == 0:
+ if len(valid_obs) == 1:
return batch
valid_inds, exs = zip(*valid_obs)
Mutant 71
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -154,7 +154,7 @@
valid_inds, exs = zip(*valid_obs)
# get memories for the valid observations
- mems = None
+ mems = ""
if any('memory_vecs' in ex for ex in exs):
mems = [ex.get('memory_vecs', None) for ex in exs]
batch.memory_vecs = mems
Mutant 72
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -155,7 +155,7 @@
# get memories for the valid observations
mems = None
- if any('memory_vecs' in ex for ex in exs):
+ if any('XXmemory_vecsXX' in ex for ex in exs):
mems = [ex.get('memory_vecs', None) for ex in exs]
batch.memory_vecs = mems
return batch
Mutant 73
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -155,7 +155,7 @@
# get memories for the valid observations
mems = None
- if any('memory_vecs' in ex for ex in exs):
+ if any('memory_vecs' not in ex for ex in exs):
mems = [ex.get('memory_vecs', None) for ex in exs]
batch.memory_vecs = mems
return batch
Mutant 75
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -156,7 +156,7 @@
# get memories for the valid observations
mems = None
if any('memory_vecs' in ex for ex in exs):
- mems = [ex.get('memory_vecs', None) for ex in exs]
+ mems = None
batch.memory_vecs = mems
return batch
Mutant 76
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -157,7 +157,7 @@
mems = None
if any('memory_vecs' in ex for ex in exs):
mems = [ex.get('memory_vecs', None) for ex in exs]
- batch.memory_vecs = mems
+ batch.memory_vecs = None
return batch
def _set_text_vec(self, obs, history, truncate):
Mutant 79
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -167,7 +167,7 @@
if 'text' not in obs:
return obs
- if 'text_vec' not in obs:
+ if 'XXtext_vecXX' not in obs:
# text vec is not precomputed, so we set it using the history
obs['full_text'] = history.get_history_str()
history_vecs = history.get_history_vec_list()
Mutant 81
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -169,7 +169,7 @@
if 'text_vec' not in obs:
# text vec is not precomputed, so we set it using the history
- obs['full_text'] = history.get_history_str()
+ obs['XXfull_textXX'] = history.get_history_str()
history_vecs = history.get_history_vec_list()
if len(history_vecs) > 0:
obs['memory_vecs'] = history_vecs[:-1]
Mutant 82
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -169,7 +169,7 @@
if 'text_vec' not in obs:
# text vec is not precomputed, so we set it using the history
- obs['full_text'] = history.get_history_str()
+ obs['full_text'] = None
history_vecs = history.get_history_vec_list()
if len(history_vecs) > 0:
obs['memory_vecs'] = history_vecs[:-1]
Mutant 84
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -171,7 +171,7 @@
# text vec is not precomputed, so we set it using the history
obs['full_text'] = history.get_history_str()
history_vecs = history.get_history_vec_list()
- if len(history_vecs) > 0:
+ if len(history_vecs) >= 0:
obs['memory_vecs'] = history_vecs[:-1]
obs['text_vec'] = history_vecs[-1]
else:
Mutant 85
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -171,7 +171,7 @@
# text vec is not precomputed, so we set it using the history
obs['full_text'] = history.get_history_str()
history_vecs = history.get_history_vec_list()
- if len(history_vecs) > 0:
+ if len(history_vecs) > 1:
obs['memory_vecs'] = history_vecs[:-1]
obs['text_vec'] = history_vecs[-1]
else:
Mutant 86
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -172,7 +172,7 @@
obs['full_text'] = history.get_history_str()
history_vecs = history.get_history_vec_list()
if len(history_vecs) > 0:
- obs['memory_vecs'] = history_vecs[:-1]
+ obs['XXmemory_vecsXX'] = history_vecs[:-1]
obs['text_vec'] = history_vecs[-1]
else:
obs['memory_vecs'] = []
Mutant 87
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -172,7 +172,7 @@
obs['full_text'] = history.get_history_str()
history_vecs = history.get_history_vec_list()
if len(history_vecs) > 0:
- obs['memory_vecs'] = history_vecs[:-1]
+ obs['memory_vecs'] = history_vecs[:+1]
obs['text_vec'] = history_vecs[-1]
else:
obs['memory_vecs'] = []
Mutant 88
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -172,7 +172,7 @@
obs['full_text'] = history.get_history_str()
history_vecs = history.get_history_vec_list()
if len(history_vecs) > 0:
- obs['memory_vecs'] = history_vecs[:-1]
+ obs['memory_vecs'] = history_vecs[:-2]
obs['text_vec'] = history_vecs[-1]
else:
obs['memory_vecs'] = []
Mutant 94
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -179,7 +179,7 @@
obs['text_vec'] = []
# check truncation
- if 'text_vec' in obs:
+ if 'XXtext_vecXX' in obs:
truncated_vec = self._check_truncate(obs['text_vec'], truncate, True)
obs.force_set('text_vec', torch.LongTensor(truncated_vec))
Mutant 95
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -179,7 +179,7 @@
obs['text_vec'] = []
# check truncation
- if 'text_vec' in obs:
+ if 'text_vec' not in obs:
truncated_vec = self._check_truncate(obs['text_vec'], truncate, True)
obs.force_set('text_vec', torch.LongTensor(truncated_vec))
Mutant 97
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -180,7 +180,7 @@
# check truncation
if 'text_vec' in obs:
- truncated_vec = self._check_truncate(obs['text_vec'], truncate, True)
+ truncated_vec = self._check_truncate(obs['text_vec'], truncate, False)
obs.force_set('text_vec', torch.LongTensor(truncated_vec))
if 'memory_vecs' in obs:
Mutant 99
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -181,7 +181,7 @@
# check truncation
if 'text_vec' in obs:
truncated_vec = self._check_truncate(obs['text_vec'], truncate, True)
- obs.force_set('text_vec', torch.LongTensor(truncated_vec))
+ obs.force_set('XXtext_vecXX', torch.LongTensor(truncated_vec))
if 'memory_vecs' in obs:
obs.force_set(
Mutant 100
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -183,7 +183,7 @@
truncated_vec = self._check_truncate(obs['text_vec'], truncate, True)
obs.force_set('text_vec', torch.LongTensor(truncated_vec))
- if 'memory_vecs' in obs:
+ if 'XXmemory_vecsXX' in obs:
obs.force_set(
'memory_vecs',
[
Mutant 101
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -183,7 +183,7 @@
truncated_vec = self._check_truncate(obs['text_vec'], truncate, True)
obs.force_set('text_vec', torch.LongTensor(truncated_vec))
- if 'memory_vecs' in obs:
+ if 'memory_vecs' not in obs:
obs.force_set(
'memory_vecs',
[
Mutant 102
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -185,7 +185,7 @@
if 'memory_vecs' in obs:
obs.force_set(
- 'memory_vecs',
+ 'XXmemory_vecsXX',
[
torch.LongTensor(self._check_truncate(m, truncate, True))
for m in obs['memory_vecs']
Mutant 103
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -187,7 +187,7 @@
obs.force_set(
'memory_vecs',
[
- torch.LongTensor(self._check_truncate(m, truncate, True))
+ torch.LongTensor(self._check_truncate(m, truncate, False))
for m in obs['memory_vecs']
],
)
Mutant 105
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -207,7 +207,7 @@
:returns:
3d padded tensor of memories (bsz x num_mems x seqlen)
"""
- if mems is None:
+ if mems is not None:
return None
bsz = len(mems)
if bsz == 0:
Mutant 106
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -209,7 +209,7 @@
"""
if mems is None:
return None
- bsz = len(mems)
+ bsz = None
if bsz == 0:
return None
Mutant 107
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -210,7 +210,7 @@
if mems is None:
return None
bsz = len(mems)
- if bsz == 0:
+ if bsz != 0:
return None
num_mems = max(len(mem) for mem in mems)
Mutant 108
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -210,7 +210,7 @@
if mems is None:
return None
bsz = len(mems)
- if bsz == 0:
+ if bsz == 1:
return None
num_mems = max(len(mem) for mem in mems)
Mutant 110
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -214,7 +214,7 @@
return None
num_mems = max(len(mem) for mem in mems)
- if num_mems == 0 or self.memsize <= 0:
+ if num_mems != 0 or self.memsize <= 0:
return None
elif num_mems > self.memsize:
# truncate to memsize most recent memories
Mutant 112
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -214,7 +214,7 @@
return None
num_mems = max(len(mem) for mem in mems)
- if num_mems == 0 or self.memsize <= 0:
+ if num_mems == 0 or self.memsize < 0:
return None
elif num_mems > self.memsize:
# truncate to memsize most recent memories
Mutant 113
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -214,7 +214,7 @@
return None
num_mems = max(len(mem) for mem in mems)
- if num_mems == 0 or self.memsize <= 0:
+ if num_mems == 0 or self.memsize <= 1:
return None
elif num_mems > self.memsize:
# truncate to memsize most recent memories
Mutant 114
--- parlai/agents/memnn/memnn.py
+++ parlai/agents/memnn/memnn.py
@@ -214,7 +214,7 @@
return None
num_mems = max(len(mem) for mem in mems)
- if num_mems == 0 or self.memsize <= 0:
+ if num_mems == 0 and self.memsize <= 0:
return None
elif num_mems > self.memsize:
# truncate to memsize most recent memories