Я делаю первые шаги по изучению ТФ и испытываю трудности с RNN.Тренировка тренировки RNN Tensorflow
Моя проблема с игрушкой выглядит так: двухслойная сеть LSTM + с плотным слоем питается необработанными аудиоданными и должна проверять, присутствует ли какая-либо частота в звуке.
поэтому сеть должна 1 до 1 карта с плавающей точкой (аудио последовательность данных), чтобы плавать (предварительно подобранный объем частоты)
Я получил эту работу на Keras и видел подобное решение TFLearn, но хотелось бы реализуйте это на голом Tensorflow относительно эффективным способом.
, что я сделал:
lstm = rnn_cell.BasicLSTMCell(LSTM_SIZE,state_is_tuple=True,forget_bias=1.0)
lstm = rnn_cell.DropoutWrapper(lstm)
stacked_lstm = rnn_cell.MultiRNNCell([lstm] * 2,state_is_tuple=True)
outputs, states = rnn.dynamic_rnn(stacked_lstm, in, dtype=tf.float32)
outputs = tf.transpose(outputs, [1, 0, 2])
last = tf.gather(outputs, int(outputs.get_shape()[0]) - 1)
network= tf.matmul(last, W) + b
# cost function, optimizer etc...
во время тренировки я кормил с (BATCH_SIZE, SEQUENCE_LEN, 1) партии и, кажется, потеря правильно сходились, но я не могу понять, как предсказать, обученной сети.
Вопросы (0): Как я могу заставить эту сеть возвращать последовательность справа от Tensorflow, не возвращаясь к python для каждого образца (кормить последовательность и прогнозировать последовательность того же размера)?
Если я хочу предсказать один образец за раз и повторить в python, что это правильный способ сделать это?
Во время тестирования требуется dynamic_rnn или он используется только для разворачивания для BPTT во время обучения? почему dynamic_rnn возвращает все обратные интервалы распространения тензоров? это выходы каждого уровня разворачиваемой сети?