我有一个在CNTK创建和训练的神经网络。我可以用Python中的model.save_model(“mymodel.dnn”)保存它。这将生成以protobuf格式序列化的文件。 如何将模型保存为纯文本或将.dnn文件转换为纯文本?
答案 0 :(得分:3)
CNTK使用的格式是protobuf。因此你可以使用像
import google.protobuf.text_format
创建可读输出。 This page有更多信息。
我们的protobuf文件目前位于this location。我很难链接到版本2b9。确保使用正确的.proto
文件。
答案 1 :(得分:2)
protobuf编译器可以从二进制模型文件生成文本表示,您只需要指向CNTK原型定义并告诉它在模型文件中需要一个Dictionary:
%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
答案 2 :(得分:0)
使用Brainscript,您可以添加
command = <yourCommands>:DumpNodeInfo
modelDir = "./ANNmodel"
modelPath = "$modelDir$/NN.dnn"
...
# dump parameter values
DumpNodeInfo = {
action = "dumpNode"
printValues = true
}
点击here了解详情。
答案 3 :(得分:0)
您可以使用CNTK的dumpnode命令将CNTK训练的模型转换为txt格式。这是内容配置文件txt.conf:
command = convert2txt
convert2txt = [
action = "dumpnode"
modelPath="./cntkSpeechFF.dnn.5"
nodeName = "Prior" # if not specified, all nodes will be printed
outputFile = "./cntkSpeechFF.dnn.5.txt" # the path to the output file. If not specified a file name will be automatically generated based on the modelPath.
printValues = true
printMetadata = true
]
然后您以cntk身份运行
cntk configFile=txt.conf