【CNTK】CNTK学习笔记之modelDir

因为要用到图像识别,所以看的他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 = -1

command = train:test

precision = "float"
modelPath = "$modelDir$/02_Convolution"

# uncomment the following line to write logs to a file
# stderr = "$outputDir$/02_Convolution_out"
traceLevel = 1
numMBsToShowResult = 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
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值