import random from examples.NIPS.MNIST.noisy_sequence_detection.scenario001.generate_data import generate_data from itertools import islice def contains_element_n_times(l, x, n): gen = (True for i in l if i == x) return next(islice(gen, n - 1, None), False) def get_correct_digit_for_initiated_at(digit, last_digits, threshold, available_digits, appearances): if contains_element_n_times(last_digits, digit, appearances): return digit, True return None, None if __name__ == '__main__': generate_data( scenario_function=lambda *args, **kwargs: get_correct_digit_for_initiated_at(*args, **kwargs, appearances=2), test_function=lambda *args, **kwargs: get_correct_digit_for_initiated_at(*args, **kwargs, appearances=2), relevant_digits=2, noises_function=lambda: [0.0])
import random from examples.NIPS.MNIST.noisy_sequence_detection.scenario001.generate_data import generate_data from examples.NIPS.MNIST.noisy_sequence_detection.scenario103_2.generate_data import get_correct_digit_for_initiated_at from examples.NIPS.MNIST.noisy_sequence_detection.scenario108_2.generate_data import get_initiated_at_scenario108 if __name__ == '__main__': available_digits = list(range(10)) swap_from = random.choice(available_digits) swap_to = random.choice(available_digits) # Ensure that we are not swapping a number for itself while swap_from == swap_to: swap_to = random.choice(available_digits) with open('swap.txt', 'w') as o: o.write('{},{}'.format(swap_from, swap_to)) generate_data( scenario_function=lambda *args, **kwargs: get_initiated_at_scenario108( *args, **kwargs, swap=(swap_from, swap_to)), test_function=get_correct_digit_for_initiated_at, relevant_digits=2)
import random from examples.NIPS.MNIST.noisy_sequence_detection.scenario001.generate_data import generate_data def get_correct_digit_for_initiated_at(digit, last_digits, threshold, available_digits): if digit in last_digits: return digit, True return None, None if __name__ == '__main__': generate_data( scenario_function=get_correct_digit_for_initiated_at, test_function=get_correct_digit_for_initiated_at, relevant_digits=3, noises_function=lambda: [0.0] )
import random from examples.NIPS.MNIST.noisy_sequence_detection.scenario001.generate_data import generate_data def get_digit_for_initiated_at(digit, last_digits, threshold, available_digits): if digit == last_digits[-1]: return digit, True elif random.random() < threshold: return random.choice(available_digits), False return None, None if __name__ == '__main__': generate_data(scenario_function=get_digit_for_initiated_at)
import random from examples.NIPS.MNIST.noisy_sequence_detection.scenario001.generate_data import generate_data from examples.NIPS.MNIST.noisy_sequence_detection.scenario103_2.generate_data import get_initiated_at_scenario103, \ get_correct_digit_for_initiated_at if __name__ == '__main__': generate_data( scenario_function=get_initiated_at_scenario103, test_function=get_correct_digit_for_initiated_at, relevant_digits=4 )
5: 0.6, 6: 0.7, 7: 0.8, 8: 0.9, 9: 1.0, } def get_probability(t, probabilities=None): if probabilities is None: probabilities = DEFAULT_PROBABILITIES return probabilities[t[1]] def filter_by_probability(t, probabilities=None): return random.random() < get_probability(t, probabilities) if __name__ == '__main__': assignment = get_random_assignment(list(range(10))) with open('assignment.txt', 'w') as o: o.write(str(assignment)) filtered_trainset = list(filter(filter_by_probability, trainset)) generate_data( training_set=filtered_trainset, )
import random from examples.NIPS.MNIST.noisy_sequence_detection.scenario001.generate_data import generate_data from examples.NIPS.MNIST.noisy_sequence_detection.scenario004.generate_data import get_random_assignment from examples.NIPS.MNIST.noisy_sequence_detection.scenario103_2.generate_data import get_correct_digit_for_initiated_at from examples.NIPS.MNIST.noisy_sequence_detection.scenario104_2.generate_data import get_initiated_at_scenario104 if __name__ == '__main__': assignment = get_random_assignment(list(range(10))) with open('assignment.txt', 'w') as o: o.write(str(assignment)) generate_data( scenario_function=lambda *args, **kwargs: get_initiated_at_scenario104( *args, **kwargs, assignment=assignment), test_function=get_correct_digit_for_initiated_at, relevant_digits=4)
from examples.NIPS.MNIST.noisy_sequence_detection.scenario001.generate_data import generate_data def get_digit_for_initiated_at(digit, last_digits, threshold, available_digits, swap): if digit == last_digits[-1]: if digit == swap[0] and random.random() < threshold: return swap[1], False else: return digit, True return None, None if __name__ == '__main__': available_digits = list(range(10)) swap_from = random.choice(available_digits) swap_to = random.choice(available_digits) # Ensure that we are not swapping a number for itself while swap_from == swap_to: swap_to = random.choice(available_digits) with open('swap.txt', 'w') as o: o.write('{},{}'.format(swap_from, swap_to)) generate_data( scenario_function=lambda *args, **kwargs: get_digit_for_initiated_at( *args, **kwargs, swap=(swap_from, swap_to)))
return None, None def check_swap_for_itself(assignment): for i, a in enumerate(assignment): if i == a: return True return False def get_random_assignment(digits): assignment = digits while check_swap_for_itself(assignment): random.shuffle(assignment) return assignment if __name__ == '__main__': assignment = get_random_assignment(list(range(10))) with open('assignment.txt', 'w') as o: o.write(str(assignment)) generate_data( scenario_function=lambda *args, **kwargs: get_digit_for_initiated_at( *args, **kwargs, assignment=assignment))
# True label is used return digit, True elif random.random() < threshold: # Random label is added return random.choice(available_digits), False return None, None def noises(min_noise=0.0, max_noise=1.1, noise_step=0.2): return np.arange(min_noise, max_noise, noise_step) def folder_name(noise): return 'noise_{0:.2f}/'.format(noise).replace('.', '_') if __name__ == '__main__': assignment = get_random_assignment(list(range(10))) with open('assignment.txt', 'w') as o: o.write(str(assignment)) generate_data( noises_function=noises, folder_name=folder_name, scenario_function=lambda *args, **kwargs: get_digit_for_initiated_at( *args, **kwargs, assignment=assignment ) )