2017-01-26 4 views
3

У меня есть нейронная сеть, созданная и обученная в CNTK. Я могу сохранить его с помощью model.save_model ("mymodel.dnn") в Python. Это создает файл, сериализованный в формате protobuf. Как я могу сохранить модель как обычный текст или преобразовать файл .dnn в обычный текст?Как сохранить модель CNTK в виде текста?

ответ

2

Формат CNTK использует protobuf. Поэтому для создания читаемого вывода вы можете использовать такие вещи, как import google.protobuf.text_format . This page имеет дополнительную информацию.

Наши файлы protobuf в настоящее время находятся в this location. Мне сложно ссылаться на версию 2b9. Убедитесь, что вы используете правильный файл .proto.

0

С Brainscript вы можете добавить

command = <yourCommands>:DumpNodeInfo 
modelDir = "./ANNmodel" 
modelPath = "$modelDir$/NN.dnn" 

... 

# dump parameter values 
DumpNodeInfo = { 
    action = "dumpNode" 
    printValues = true 
} 

Нажмите here для получения дополнительной информации.

2

Protobuf компилятор может генерировать текстовое представление из двоичного файла модели, вам просто нужно указать на определение CNTK прото и сказать ему, чтобы ожидать словаря в файле модели:

%PROTOBUF_PATH%\bin\protoc --decode CNTK.proto.Dictionary --proto_path [CNTK root]\Source\CNTKv2LibraryDll\proto\ [CNTK root]\Source\CNTKv2LibraryDll\proto\CNTK.proto <mymodel.dnn> mymodel.txt 
Смежные вопросы