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