def encode(self, control_events, target_events): """Returns a SequenceExample for the given event sequence pair. Args: control_events: A list-like sequence of control events. target_events: A list-like sequence of target events, the same length as `control_events`. Returns: A tf.train.SequenceExample containing inputs and labels. Raises: ValueError: If the control and target event sequences have different length. """ if len(control_events) != len(target_events): raise ValueError('must have the same number of control and target events ' '(%d control events but %d target events)' % ( len(control_events), len(target_events))) inputs = [] labels = [] for i in range(len(target_events) - 1): inputs.append(self.events_to_input(control_events, target_events, i)) labels.append(self.events_to_label(target_events, i + 1)) return sequence_example_lib.make_sequence_example(inputs, labels)
def testEncode(self): events = [0, 1, 0, 2, 0] sequence_example = self.enc.encode(events) expected_inputs = [[0], [1], [0], [2]] expected_labels = [1, 0, 2, 0] expected_sequence_example = sequence_example_lib.make_sequence_example( expected_inputs, expected_labels) self.assertEqual(sequence_example, expected_sequence_example)
def testEncode(self): events = [0, 1, 0, 2, 0] sequence_example = self.enc.encode(events) expected_inputs = [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0]] expected_labels = [1, 0, 2, 0] expected_sequence_example = sequence_example_lib.make_sequence_example( expected_inputs, expected_labels) self.assertEqual(sequence_example, expected_sequence_example)
def encode(self, events, mw): inputs = [] labels = [] for i in range(len(events) - 1): inputs.append(self.events_to_input(events, i, mw)) labels.append(self.events_to_label(events, i + 1, mw)) #mw.write(mw.model_dir, 'ed2_events', str(events)) mw.write(mw.model_dir, 'ed2_inputs', inputs) mw.write(mw.model_dir, 'ed2_labels', labels) return sequence_example_lib.make_sequence_example(inputs, labels)
def testEncode(self): control_events = [1, 1, 1, 0, 0] target_events = [0, 1, 0, 2, 0] sequence_example = self.enc.encode(control_events, target_events) expected_inputs = [[0.0, 1.0, 1.0, 0.0, 0.0], [0.0, 1.0, 0.0, 1.0, 0.0], [1.0, 0.0, 1.0, 0.0, 0.0], [1.0, 0.0, 0.0, 0.0, 1.0]] expected_labels = [1, 0, 2, 0] expected_sequence_example = sequence_example_lib.make_sequence_example( expected_inputs, expected_labels) self.assertEqual(sequence_example, expected_sequence_example)
def encode(self, events): """Returns a SequenceExample for the given event sequence. Args: events: A list-like sequence of events. Returns: A tf.train.SequenceExample containing inputs and labels. """ inputs = [] labels = [] for i in range(len(events) - 1): inputs.append(self.events_to_input(events, i)) labels.append(self.events_to_label(events, i + 1)) return sequence_example_lib.make_sequence_example(inputs, labels)
def testSquashAndEncode(self): events = [100, 100, 107, 111, NO_EVENT, 99, 112, NOTE_OFF, NO_EVENT] melody = melodies_lib.Melody(events) sequence_example = self.melody_encoder_decoder.squash_and_encode(melody) expected_inputs = [ [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]] expected_labels = [2, 9, 13, 0, 13, 2, 1, 0] expected_sequence_example = sequence_example_lib.make_sequence_example( expected_inputs, expected_labels) self.assertEqual(sequence_example, expected_sequence_example)
def testEncode(self): events = [100, 100, 107, 111, NO_EVENT, 99, 112, NOTE_OFF, NO_EVENT] melody = melodies_lib.Melody(events) melody.squash(self.min_note, self.max_note, self.transpose_to_key) sequence_example = self.med.encode(melody) expected_inputs = [[ 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], [ 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0 ], [ 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ]] expected_labels = [2, 9, 13, 0, 13, 2, 1, 0] expected_sequence_example = sequence_example_lib.make_sequence_example( expected_inputs, expected_labels) self.assertEqual(sequence_example, expected_sequence_example)
def testEncode(self): events = [100, 100, 107, 111, NO_EVENT, 99, 112, NOTE_OFF, NO_EVENT] melody = melodies_lib.Melody(events) melody.squash( self.min_note, self.max_note, self.transpose_to_key) sequence_example = self.med.encode(melody) expected_inputs = [ [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0], [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]] expected_labels = [2, 9, 13, 0, 13, 2, 1, 0] expected_sequence_example = sequence_example_lib.make_sequence_example( expected_inputs, expected_labels) self.assertEqual(sequence_example, expected_sequence_example)