Keras.Можно ли использовать пакетный вывод слоя в качестве ввода следующего слоя? - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь обучить реализации Keras VGGish. https://github.com/tensorflow/models/tree/master/research/audioset Цель VGGish - классифицировать аудиоданные.

VGGish принимает в качестве входных данных серию спектрограмм mel (в основном, это изображения), каждая спектрограмма представляет собой 1 секунду, и возвращает серию вложений формы (batch size, 128). Таким образом, для обработки аудиофайла длиной 10 секунд вы сначала конвертируете его в виде пакета из 10 мел спектограмм, и вы получите выходную форму (10, 128).

Теперь я хотел бы добавить классификатор поверх VGGish, что означает добавление слоев. Поскольку форма (10, 128) является временным рядом, я хотел бы свернуть в первом измерении или использовать LSTM, в зависимости от того, что подходит.

Проблема в том, что форма вложения определяется как (batch size, units=128).

Короче говоря, вы вводите партию n секунд. Что я хотел бы сделать, так это возможность вводить пакет из n файлов по 10 секунд и работать на уровне файлов, а не на втором уровне.

Это действительно вызывает у меня головную боль.

Начало VGGish выглядит так:

input_shape = (vggish_params.NUM_FRAMES,vggish_params.NUM_BANDS)

img_input = Input( shape=input_shape)
reshaped = Reshape((vggish_params.NUM_FRAMES,vggish_params.NUM_BANDS,1))(img_input)
# Block 1
x = Conv2D(64, (3, 3), activation='relu', padding='same', name='conv1')(reshaped)
x = MaxPooling2D((2, 2), strides=(2, 2), name='pool1')(x)

Слой Reshape позволяет Conv 2D. Выходной слой для встраивания выглядит так:

x = Dense(128, activation='relu', name='fc2')(x)

В целом, я бы хотел добавить одно измерение. Под этим я подразумеваю ввод пакетов аудиоклипов n секунд вместо пакетов из n-секундных клипов.

Я действительно понятия не имею, как это сделать, и я не знаю, возможно ли это вообще. Я пришел сюда за помощью, потому что я действительно озадачен.

Есть идеи? Приветствия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...