Я пытаюсь реализовать deepdream
в C++
в caffe
(Я хочу запустить его в Android). googlenet
требует ввода формы 224*224*3
, В записной книжке ipython deepdream
это показывает src.reshape(1,3,h,w)
, Означает ли это, что только входной BLOB-объект изменяется или распространяется по сети? Я пытался позвонить net.Reshape()
в C++
и это привело к:
F0307 01:27:24.529654 31857 inner_product_layer.cpp:64] Check failed: K_ == new_K
(1024 vs. 319488) Input size incompatible with inner product parameters.
Разве сеть тоже не должна быть изменена? Если нет, то в чем смысл изменения формы входного объекта? Я новичок в углубленном изучении. Так что прости меня, если это кажется тривиальным.
изменение формы ввода требует изменения формы всей сети. Увы, есть некоторые типы слоев, которые не любят изменяться. В частности, слой «InnerProduct»: количество обучаемых параметров внутреннего слоя продукта зависит от точный входная форма и выходная форма. Поэтому сеть со слоем «InnerProduct» не может быть изменена.
Вы можете использовать методы, описанные в «сетевая хирургия» пример преобразования внутренних слоев продукта в эквивалентные сверточные слои (которые могут быть изменены).
Других решений пока нет …