Развертывание кафе RNNs

Я пытаюсь развернуть модель кафе, содержащую слой RNN. Вопрос, который я имею, состоит в том, как вычислить выход из сети. Я предположил, что я мог бы позвонить

net->Forward();

обновить сеть, а затем

net->output_blobs()[0]->mutable_cpu_data()[x];

один раз за каждый шаг, чтобы прочитать вывод. Тем не менее, используя постоянный ввод, а затем работаетnet-Forward()«Несколько раз не влияет на вывод, как можно было бы ожидать. Я пытался использовать разные веса / смещения, которые изменяют вывод, но независимо от того, какую конфигурацию я использую, вывод все равно будет статическим. Кто-нибудь знает, что правильная процедура для развертывания кафе RNN с C ++?

Редактировать:

Это было проверено с одним нейронным слоем RNN, как показано ниже.

model.prototxt:

layer {
name: "input"type: "Input"top: "states"input_param {
shape: {
dim: 1
dim: 1
}
}
}

input: "clip"input_shape { dim: 1 dim: 1 dim: 1}

layer {
name: "rnn"type: "RNN"top: "rnn"bottom: "clip"bottom: "states"recurrent_param {
num_output: 1
}
}

И .cpp:

caffe::Blob<float>* input_layer = test_net->input_blobs()[0];
float* input_data;
input_data = input_layer->mutable_cpu_data();

input_data[0] = 1.0;
for (int i=0; i<5; i++)
{
test_net->Forward();
cout << "Ouput: " << net->output_blobs().back()->mutable_cpu_data()[0] << endl;
}

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]