Почему Matlab R2010 не может загружать объекты нейронной сети из R2007?
У меня есть нейронная сеть, которую я сохраняю в файл.mat в Matlab 2007.
Я пытаюсь загрузить нейронную сеть из файла с load filename.mat
, Это прекрасно работает с версиями R2007b и R2008, но когда я пытаюсь загрузить R2010b, я получаю следующее сообщение:
Предупреждение. Произошла ошибка при запуске метода loadobj класса. Объект, который был загружен из MAT-файла, был копией объекта до запуска метода loadobj. Остальные переменные также были загружены из MAT-файла.
Обнаружена ошибка:
Ссылка на несуществующее поле 'имя'
Странно то, что кажется, что переменная, содержащая нейронную сеть, существует, но она не работает должным образом. Ни одна из функций, использующих нейронную сеть, не работает в R2010.
Кто-нибудь сталкивался с подобной проблемой? Как сохранить нейронную сеть, чтобы она была совместима с Matlab R2010?
Или, что еще лучше, как мне правильно загрузить его в Matlab 2010?
2 ответа
Да, кажется, что другие люди сталкивались с этой проблемой (нейронные сети не загружаются в MATLAB 2010), согласно этому сообщению в MATLAB Central, в котором Андреас Гозер (менеджер технической поддержки в Mathworks) предлагает:
Если вы столкнетесь с этой проблемой в будущем, обратитесь в службу технической поддержки и обратитесь к решению 1-EGNM3S.
Очевидно, вам нужен "фиксированный файл net.m", который может предоставить техническая поддержка. Я не проверял это, так как сам не имею этой проблемы.
Внимательно читая сообщение об ошибке, я бы сказал, что загруженная переменная содержит "необработанный" объект, который был сохранен в файле.MAT, вполне возможно, структуру. Вы можете запустить whos myvarname
Проверять. Чтобы "оживить" эту структуру в объект, она должна быть обработана перегруженным loadobj
функция для своего типа объекта, которая обычно автоматически вызывается MATLAB load
функция. В этом случае loadobj
который идет с нейронным сетевым объектом в R2010, кажется, не полностью обратно совместим...
Я подозреваю, что базовые объекты для нейронной сети изменились с 2007b и что определение в R2010b не совместимо с данными, хранящимися в MAT-файле.
Я рекомендую следовать ответу Джонаса. В качестве альтернативы вы можете попробовать загрузить его и повторно сохранить в промежуточном выпуске MATLAB или сохранить данные из объектов нейронной сети и перестроить их в R2010b.