Я пытаюсь использовать лазни для обучения простой нейронной сети и использовать свой собственный код C ++ для вывода. Я использую веса, сгенерированные лазаньей, но я не могу получить хорошие результаты. Можно ли напечатать вывод скрытого слоя и / или сами расчеты? Я хочу посмотреть, кто это работает под капотом, поэтому я могу реализовать это таким же образом в C ++.
Я могу помочь с Lasagne + Theano в Python, я не уверен из вашего вопроса, полностью ли вы работаете в C ++ или вам нужны только результаты Python + Lasagne в вашем коде C ++.
Давайте рассмотрим, у вас есть простая сеть, подобная этой:
l_in = lasagne.layers.InputLayer(...)
l_in_drop = lasagne.layers.DropoutLayer(l_in, ...)
l_hid1 = lasagne.layers.DenseLayer(l_in_drop, ...)
l_out = lasagne.layers.DenseLayer(l_hid1, ...)
Вы можете получить выходные данные каждого слоя, вызвав get_output
метод на конкретном слое:
lasagne.layers.get_output(l_in, deterministic=False) # this will just give you the input tensor
lasagne.layers.get_output(l_in_drop, deterministic=True)
lasagne.layers.get_output(l_hid1, deterministic=True)
lasagne.layers.get_output(l_out, deterministic=True)
Когда вы имеете дело с отсевом и не находитесь на этапе обучения, важно не забывать звонить get_output
метод с deterministic
для параметра установлено значение True, чтобы избежать недетерминированного поведения. Это относится ко всем слоям, которым предшествует один или несколько выпадающих слоев.
Надеюсь, это ответит на ваш вопрос.
Других решений пока нет …