Как импортировать слои tenorflow keras в matlab? - PullRequest
0 голосов
/ 10 февраля 2020

Я работаю над TensorFlow (python) и MATLAB для своих исследований. Поскольку обучать сеть на TensorFlow намного быстрее, чем MATLAB в целом, я планирую обучить модель на TensorFlow и использовать ее на MATLAB. К счастью, есть функция MATLAB, которая может считывать архитектуру и веса набора слоев, называемых importKerasLayers. (см. https://kr.mathworks.com/help/deeplearning/ref/importkeraslayers.html?s_tid=doc_ta)

Некоторые слои Keras не поддерживаются в MATLAB, такие как слои с изменением формы и слои с повышением частоты, поэтому я создал пользовательские слои для обоих и проверил, чтобы они работали должным образом. За исключением этих слоев, importKerasLayers хорошо читает архитектуру и вес. Но каким-то образом выходные данные импортированных слоев и исходных в python дают разные значения. (особенно для сверточных слоев)

Я думаю, что причина в разнице в условных обозначениях каждой структуры. (python против MATLAB) Например, «HWCN» является настройкой по умолчанию в MATLAB, в то время как «NHW C» находится в TensorFlow. Кроме того, вектор столбца является значением по умолчанию, а при расширении тензора дополнительное измерение добавляется «после» существующих в MATLAB. Однако в python вектор строки является значением по умолчанию, а дополнительное измерение идет «перед» существующими: нулевая ось становится первой, а добавленная ось становится нулевой, что-то в этом роде.

В этом Ситуация, как я могу использовать обученные слои TensorFlow Keras на платформе MATLAB без потери совместимости?

Я уже опубликовал этот же вопрос в "Ответах MATLAB" подробно, поэтому, пожалуйста, обратитесь к этому: https://kr.mathworks.com/matlabcentral/answers/504127-imported-keras-model-gives-a-different-wrong-output-in-matlab

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