【CNTK】CNTK学习笔记之modelDir

来源:互联网 发布:福州网络家长学校 编辑:程序博客网 时间:2024/06/06 18:47

因为要用到图像识别,所以看的他CNN网络

cntk\Examples\Image\MNIST\Config\02_Convolution.cntk

先看配置文件:

rootDir = ".."configDir = "$rootDir$/Config"dataDir   = "$rootDir$/Data"outputDir = "$rootDir$/Output"modelDir  = "$outputDir$/Models"deviceId = 0# Override the above as follows when running on CPU:# deviceId = -1command = train:testprecision = "float"modelPath = "$modelDir$/02_Convolution"# uncomment the following line to write logs to a file# stderr = "$outputDir$/02_Convolution_out"traceLevel = 1numMBsToShowResult = 500########################################  TRAINING CONFIG                    ########################################train = [    action = "train"    NDLNetworkBuilder = [        imageLayout = "cudnn"        initOnCPUOnly = true        ndlMacros = "$configDir$/Macros.ndl"        networkDescription = "$ConfigDir$/02_Convolution.ndl"    ]    SGD = [        epochSize = 60000        minibatchSize = 32        #learningRatesPerSample = 0.003125    # TODO        #momentumAsTimeConstant = 0        learningRatesPerMB = 0.1*5:0.3        momentumPerMB = 0*10:0.7        maxEpochs = 15    ]    reader = [        readerType = "CNTKTextFormatReader"        # See ../REAMDE.md for details on getting the data (Train-28x28_cntk_text.txt).        file = "$DataDir$/Train-28x28_cntk_text.txt"        input = [            features = [                dim = 784                format = "dense"            ]            labels = [                dim = 10                format = "dense"            ]        ]    ]    ]########################################  TEST CONFIG                        ########################################test = [    action = test    minibatchSize = 1024    reader = [        readerType = "CNTKTextFormatReader"        file = "$DataDir$/Test-28x28_cntk_text.txt"        input = [            features = [            dim = 784            format = "dense"            ]            labels = [                dim = 10                format = "dense"            ]        ]    ]]

配置文件总体分为两部分,按JAVA的解释,第一部分为变量声明,第二部分为类方法。这个文件里有两个类,第一个为train,第二个为test。这篇主要解释变量声明里的modelDir 。

可以看到配置文件是先指定了一些文件路径:

rootDir = ".."configDir = "$rootDir$/Config"dataDir   = "$rootDir$/Data"outputDir = "$rootDir$/Output"modelDir  = "$outputDir$/Models"

modelDir是训练模型得到的参数存储的路径。别的路径在下面的配置文件里都用到了,但是这个modelDir只是在这里声明了一下,下面没有再用。但是它很重要。很多工作都是CNTK框架给我们做了。不像其他一些机器学习框架,需要自己在代码里指定模型的路径。在进行网络训练和测试的时候,要先判断是否这个路径,如果模型存在,那么就不在进行训练。如果直接进行”test”,也会判断有没有已经训练好的模型。如果有就用这个模型进行test。感觉说的很啰嗦。测试一下就知道了:

测试一:
02_Convolution.cntk里面指定的执行命令为:

command = train:test

就是先执行train,再执行test。由于我之前已经训练好了。所以在执行的时候,就执行test了。
这里写图片描述

如果把../Output/Models这个文件改了名,找不到这个路径。再从新运行就会出现:
这里写图片描述

测试二:

command = test

模型已经训练好,只执行test
这里写图片描述

如果模型没有训练好,只执行test
这里写图片描述

0 0
原创粉丝点击