Skip to content
This repository has been archived by the owner on Sep 6, 2022. It is now read-only.

only one epoch is ok #2

Open
Miraclemarvel55 opened this issue Sep 25, 2019 · 1 comment
Open

only one epoch is ok #2

Miraclemarvel55 opened this issue Sep 25, 2019 · 1 comment

Comments

@Miraclemarvel55
Copy link

No description provided.

@Miraclemarvel55
Copy link
Author

after replace this function,issue will solved. 将下面的函数替换,问题将会解决.
#utils.py
def create_data_generator(directory, max_input_length, max_label_length, batch_size=64):

x, y, input_lengths, label_lengths = [], [], [], []
while True:
    try:
        with open(os.path.join(directory, 'metadata.csv'), 'r') as metadata:
            metadata_reader = csv.DictReader(metadata, fieldnames=['filename', 'spec_length', 'labels_length', 'labels'])
            next(metadata_reader)
            for row in metadata_reader:
                audio = np.load(os.path.join(directory, row['filename'] + '.npy'))
                x.append(audio)
                y.append([int(i) for i in row['labels'].split(' ')])
                input_lengths.append(row['spec_length'])
                label_lengths.append(row['labels_length'])
                if len(x) == batch_size:
                    yield {
                        'inputs': tf.keras.preprocessing.sequence.pad_sequences(x, maxlen=max_input_length, padding='post'),
                        'labels': tf.keras.preprocessing.sequence.pad_sequences(y, maxlen=max_label_length, padding='post'),
                        'input_lengths': np.asarray(input_lengths),
                        'label_lengths': np.asarray(label_lengths)
                    }, {
                        'ctc': np.zeros([batch_size])
                    }
                    x, y, input_lengths, label_lengths = [], [], [], []
    except:
        pass

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant