def _within_event_coherent_shuffle(self, kind='train'):
"""Time swap on BinnedSpikeTrainArray, swapping only within each epoch."""
if kind == 'train':
bst = self.PBEs_train
elif kind == 'test':
bst = self.PBEs_test
else:
raise ValueError("kind '{}' not understood!".format(kind))
out = copy.deepcopy(bst) # should this be deep?
shuffled = np.arange(bst.n_bins)
edges = np.insert(np.cumsum(bst.lengths),0,0)
for ii in range(bst.n_epochs):
segment = shuffled[edges[ii]:edges[ii+1]]
shuffled[edges[ii]:edges[ii+1]] = np.random.permutation(segment)
out._data = out._data[:,shuffled]
if kind == 'train':
self.PBEs_train = out
else:
self.PBEs_test = out
评论列表
文章目录