Минимальные Керас + Звуковая Нейронная Сеть - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь создать привет мир звуковых данных и кератов.Я не понимаю, что значит векторизовать ваши данные.

Я пытался адаптировать https://keras.io/getting-started/sequential-model-guide/ к звуковым данным.

мой код на kaggle

import scipy.io.wavfile
import os
import numpy
import keras
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation
from keras.optimizers import SGD

train_dir = '../input/traditional-flute-dataset/audio'
audio_file_path = os.path.join(train_dir, os.listdir(train_dir)[0])
rate, audio = scipy.io.wavfile.read(audio_file_path)
processed_audio = numpy.reshape(audio, (1,len(audio)))

model = Sequential()
model.add(Dense(64, activation='relu', input_shape=processed_audio.shape))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(1, activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer=sgd,
              metrics=['accuracy'])

model.fit(processed_audio, ['flute'], epochs=20)

ошибка

ValueError: Error when checking input: expected dense_1_input to have 3 dimensions, but got array with shape (1, 1018624)

audio.shape is (1018624,).Ответом должен быть минимальный полностью исполняемый пример keras, обрабатывающий более 1 аудиофайла, в идеале на kaggle.

Каковы плюсы и минусы создания 1D-свертки против свертки по спектрограмме звуков, как если бы это былоimage?

РЕДАКТИРОВАТЬ: непосредственная проблема была решена, мне нужно было указать размеры примера звука для первого слоя Keras.Оформить заказ Sound Hello World , где я приведу подробный пример исполняемого файла.

1 Ответ

0 голосов
/ 01 июня 2018

Он будет тренироваться без ошибок, изменяя последний Dense на более чем 1 класс (1 не имеет смысла, и это ошибки):

model.add(Dense(2, activation='softmax'))

И с этим:

x_train = np.expand_dims(audio, 0)
y_train = np.array([[1., 0.]])

model.fit(x_train, y_train, epochs=20)

Я вижу, вы также изменили свой input_shape - не надо.Установите его обратно: audio.shape.

Чтобы избежать путаницы, вот целый фрагмент кода на основе вашего исходного кода:

fs, data = scipy.io.wavfile.read('1.wav')

model = Sequential()
model.add(Dense(64, activation='relu', input_shape=data.shape))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))

sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
model.compile(loss='categorical_crossentropy',
              optimizer=sgd,
              metrics=['accuracy'])

x_train = np.expand_dims(data, 0)
y_train = np.array([[1., 0.]])

model.fit(x_train, y_train, epochs=10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...