Merge branch 'master' into qiwye/multiverso
Conflicts: Source/CNTK/CNTK.vcxproj Source/ComputationNetworkLib/ComputationNetworkLib.vcxproj Source/EvalDll/EvalDll.vcxproj Source/SGDLib/SGDLib.vcxproj Source/SGDLib/SGDLib.vcxproj.filters
This commit is contained in:
Коммит
254b45e680
|
@ -179,8 +179,8 @@ core
|
|||
# =========================
|
||||
# prebuild file
|
||||
# =========================
|
||||
MachineLearning/CNTK/buildinfo.h
|
||||
MachineLearning/CNTK/buildinfo.h$$
|
||||
Source/CNTK/buildinfo.h
|
||||
Source/CNTK/buildinfo.h$$
|
||||
|
||||
|
||||
*.lyx#
|
||||
|
|
1061
CNTK.sln
1061
CNTK.sln
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -1 +0,0 @@
|
|||
Final Results: Minibatch[1-3]: Samples Seen = 122487 ErrorPrediction/Sample = 0.84662861 CrossEntropyWithSoftmax/Sample = 3.3569317
|
|
@ -1,5 +0,0 @@
|
|||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 399.03207 EvalErr Per Sample = 399.03207 Ave Learn Rate Per Sample = 0.0003906250058 Epoch Time=8.8590002
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 339.94937 EvalErr Per Sample = 339.94937 Ave Learn Rate Per Sample = 0.0003906250058 Epoch Time=7.5630002
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 188.5687 EvalErr Per Sample = 188.5687 Ave Learn Rate Per Sample = 0.0003906250058 Epoch Time=8.0939999
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 125.43492 EvalErr Per Sample = 125.43492 Ave Learn Rate Per Sample = 0.0003906250058 Epoch Time=7.5469999
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 100.78821 EvalErr Per Sample = 100.78821 Ave Learn Rate Per Sample = 0.0003906250058 Epoch Time=8.0629997
|
|
@ -1,5 +0,0 @@
|
|||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 4.9031577 EvalErr Per Sample = 0.95952296 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=8.7030001
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 4.6207099 EvalErr Per Sample = 0.92985517 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=6.9219999
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 4.18716 EvalErr Per Sample = 0.90271711 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=11.094
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 3.7490704 EvalErr Per Sample = 0.85948026 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=6.9380002
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 3.340929 EvalErr Per Sample = 0.81315506 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=6.4219999
|
|
@ -1,30 +0,0 @@
|
|||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 3.942008 EvalErr Per Sample [0]=4.9230547 [1]=0.96228278 [2]=0.017820816 [3]=0 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=6.5009999
|
||||
Finished Epoch[1]: Criterion Node [ObjFcn.O] Per Sample = 3.942008
|
||||
Finished Epoch[1]: Evaluation Node [CE1] Per Sample = 4.9230547
|
||||
Finished Epoch[1]: Evaluation Node [FER1] Per Sample = 0.96228278
|
||||
Finished Epoch[1]: Evaluation Node [CE2] Per Sample = 0.017820816
|
||||
Finished Epoch[1]: Evaluation Node [FER2] Per Sample = 0
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 3.8613315 EvalErr Per Sample [0]=4.8266635 [1]=0.95328057 [2]=1.5309175e-007 [3]=0 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=5.2350001
|
||||
Finished Epoch[2]: Criterion Node [ObjFcn.O] Per Sample = 3.8613315
|
||||
Finished Epoch[2]: Evaluation Node [CE1] Per Sample = 4.8266635
|
||||
Finished Epoch[2]: Evaluation Node [FER1] Per Sample = 0.95328057
|
||||
Finished Epoch[2]: Evaluation Node [CE2] Per Sample = 1.5309175e-007
|
||||
Finished Epoch[2]: Evaluation Node [FER2] Per Sample = 0
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 3.592231 EvalErr Per Sample [0]=4.4902878 [1]=0.91986728 [2]=1.3654688e-006 [3]=0 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=4.5159998
|
||||
Finished Epoch[3]: Criterion Node [ObjFcn.O] Per Sample = 3.592231
|
||||
Finished Epoch[3]: Evaluation Node [CE1] Per Sample = 4.4902878
|
||||
Finished Epoch[3]: Evaluation Node [FER1] Per Sample = 0.91986728
|
||||
Finished Epoch[3]: Evaluation Node [CE2] Per Sample = 1.3654688e-006
|
||||
Finished Epoch[3]: Evaluation Node [FER2] Per Sample = 0
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 3.317225 EvalErr Per Sample [0]=4.1465311 [1]=0.90123868 [2]=7.4484177e-007 [3]=0 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=4.6100001
|
||||
Finished Epoch[4]: Criterion Node [ObjFcn.O] Per Sample = 3.317225
|
||||
Finished Epoch[4]: Evaluation Node [CE1] Per Sample = 4.1465311
|
||||
Finished Epoch[4]: Evaluation Node [FER1] Per Sample = 0.90123868
|
||||
Finished Epoch[4]: Evaluation Node [CE2] Per Sample = 7.4484177e-007
|
||||
Finished Epoch[4]: Evaluation Node [FER2] Per Sample = 0
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 3.0248218 EvalErr Per Sample [0]=3.7810273 [1]=0.85977596 [2]=2.3329179e-007 [3]=0 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=6.3130002
|
||||
Finished Epoch[5]: Criterion Node [ObjFcn.O] Per Sample = 3.0248218
|
||||
Finished Epoch[5]: Evaluation Node [CE1] Per Sample = 3.7810273
|
||||
Finished Epoch[5]: Evaluation Node [FER1] Per Sample = 0.85977596
|
||||
Finished Epoch[5]: Evaluation Node [CE2] Per Sample = 2.3329179e-007
|
||||
Finished Epoch[5]: Evaluation Node [FER2] Per Sample = 0
|
|
@ -1,5 +0,0 @@
|
|||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 4.9007668 EvalErr Per Sample = 0.95962155 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=8.1569996
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 4.5884385 EvalErr Per Sample = 0.92660254 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=5.8439999
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 4.1541729 EvalErr Per Sample = 0.90087724 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=5.7030001
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 3.6861088 EvalErr Per Sample = 0.85389495 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=5.7350001
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 3.3145225 EvalErr Per Sample = 0.8123337 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=5.75
|
|
@ -1,5 +0,0 @@
|
|||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 4.9007668 EvalErr Per Sample = 0.95962155 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=7.5630002
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 4.5884385 EvalErr Per Sample = 0.92660254 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=10.985
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 4.1541729 EvalErr Per Sample = 0.90087724 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=6.0630002
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 3.6861088 EvalErr Per Sample = 0.85389495 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=6.0310001
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 3.3145225 EvalErr Per Sample = 0.8123337 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=6.2969999
|
|
@ -1 +0,0 @@
|
|||
Final Results: Minibatch[1-3]: Samples Seen = 122487 ErrorPrediction/Sample = 0.84766549 CrossEntropyWithSoftmax/Sample = 3.4053154
|
|
@ -1,5 +0,0 @@
|
|||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 399.07224 EvalErr Per Sample = 399.07224 Ave Learn Rate Per Sample = 0.0003906250058 Epoch Time=0.82800001
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 358.64328 EvalErr Per Sample = 358.64328 Ave Learn Rate Per Sample = 0.0003906250058 Epoch Time=0.81199998
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 214.13602 EvalErr Per Sample = 214.13602 Ave Learn Rate Per Sample = 0.0003906250058 Epoch Time=0.81199998
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 134.49174 EvalErr Per Sample = 134.49174 Ave Learn Rate Per Sample = 0.0003906250058 Epoch Time=0.81199998
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 101.23165 EvalErr Per Sample = 101.23165 Ave Learn Rate Per Sample = 0.0003906250058 Epoch Time=0.81300002
|
|
@ -1,5 +0,0 @@
|
|||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 4.9008274 EvalErr Per Sample = 0.95968723 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.609
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 4.6037016 EvalErr Per Sample = 0.92785102 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.375
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 4.1639848 EvalErr Per Sample = 0.89992446 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.375
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 3.7287264 EvalErr Per Sample = 0.86164868 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.375
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 3.3417282 EvalErr Per Sample = 0.81598055 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.375
|
|
@ -1,30 +0,0 @@
|
|||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 3.9423771 EvalErr Per Sample [0]=4.9227123 [1]=0.96231562 [2]=0.021024836 [3]=0.0084108161 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.6720001
|
||||
Finished Epoch[1]: Criterion Node [ObjFcn.O] Per Sample = 3.9423771
|
||||
Finished Epoch[1]: Evaluation Node [CE1] Per Sample = 4.9227123
|
||||
Finished Epoch[1]: Evaluation Node [FER1] Per Sample = 0.96231562
|
||||
Finished Epoch[1]: Evaluation Node [CE2] Per Sample = 0.021024836
|
||||
Finished Epoch[1]: Evaluation Node [FER2] Per Sample = 0.0084108161
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 3.8521581 EvalErr Per Sample [0]=4.8151979 [1]=0.95413482 [2]=4.126586e-008 [3]=0 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.391
|
||||
Finished Epoch[2]: Criterion Node [ObjFcn.O] Per Sample = 3.8521581
|
||||
Finished Epoch[2]: Evaluation Node [CE1] Per Sample = 4.8151979
|
||||
Finished Epoch[2]: Evaluation Node [FER1] Per Sample = 0.95413482
|
||||
Finished Epoch[2]: Evaluation Node [CE2] Per Sample = 4.126586e-008
|
||||
Finished Epoch[2]: Evaluation Node [FER2] Per Sample = 0
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 3.5730984 EvalErr Per Sample [0]=4.466373 [1]=0.91714036 [2]=3.638261e-007 [3]=0 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.375
|
||||
Finished Epoch[3]: Criterion Node [ObjFcn.O] Per Sample = 3.5730984
|
||||
Finished Epoch[3]: Evaluation Node [CE1] Per Sample = 4.466373
|
||||
Finished Epoch[3]: Evaluation Node [FER1] Per Sample = 0.91714036
|
||||
Finished Epoch[3]: Evaluation Node [CE2] Per Sample = 3.638261e-007
|
||||
Finished Epoch[3]: Evaluation Node [FER2] Per Sample = 0
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 3.3172503 EvalErr Per Sample [0]=4.1465631 [1]=0.90458983 [2]=1.3984375e-007 [3]=0 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.375
|
||||
Finished Epoch[4]: Criterion Node [ObjFcn.O] Per Sample = 3.3172503
|
||||
Finished Epoch[4]: Evaluation Node [CE1] Per Sample = 4.1465631
|
||||
Finished Epoch[4]: Evaluation Node [FER1] Per Sample = 0.90458983
|
||||
Finished Epoch[4]: Evaluation Node [CE2] Per Sample = 1.3984375e-007
|
||||
Finished Epoch[4]: Evaluation Node [FER2] Per Sample = 0
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 3.0483234 EvalErr Per Sample [0]=3.8104041 [1]=0.8601045 [2]=2.6917903e-008 [3]=0 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.375
|
||||
Finished Epoch[5]: Criterion Node [ObjFcn.O] Per Sample = 3.0483234
|
||||
Finished Epoch[5]: Evaluation Node [CE1] Per Sample = 3.8104041
|
||||
Finished Epoch[5]: Evaluation Node [FER1] Per Sample = 0.8601045
|
||||
Finished Epoch[5]: Evaluation Node [CE2] Per Sample = 2.6917903e-008
|
||||
Finished Epoch[5]: Evaluation Node [FER2] Per Sample = 0
|
|
@ -1,5 +0,0 @@
|
|||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 4.9025679 EvalErr Per Sample = 0.96004868 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.516
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 4.6258178 EvalErr Per Sample = 0.92995369 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.313
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 4.193347 EvalErr Per Sample = 0.90271711 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.2970001
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 3.7910109 EvalErr Per Sample = 0.86660975 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.2970001
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 3.3828781 EvalErr Per Sample = 0.81897038 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.2970001
|
|
@ -1,5 +0,0 @@
|
|||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 4.9025679 EvalErr Per Sample = 0.96004868 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.516
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 4.6258178 EvalErr Per Sample = 0.92995369 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.2970001
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 4.193347 EvalErr Per Sample = 0.90271711 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.312
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 3.7910109 EvalErr Per Sample = 0.86660975 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.359
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 3.3828781 EvalErr Per Sample = 0.81897038 Ave Learn Rate Per Sample = 0.003125000047 Epoch Time=1.2970001
|
|
@ -1,8 +0,0 @@
|
|||
|
||||
These scripts are similar to those in the TIMIT folder of the ExampleSetups except they use much fewer files (100 utterances) and fewer minibatches. See the README.txt file there for more details about these configurations.
|
||||
|
||||
To test on CPU:
|
||||
CNTK.exe WorkDir=... ExpDir=... LibDir=... ScpDir=... configFile=globals.config+select_cpu.config+<DesiredConfigFile>
|
||||
|
||||
To test on GPU:
|
||||
CNTK.exe WorkDir=... ExpDir=... LibDir=... ScpDir=... configFile=globals.config+select_gpu.config+<DesiredConfigFile>
|
|
@ -1,38 +0,0 @@
|
|||
stderr=$ExpDir$\EvalSimpleNetwork\log\log
|
||||
command=TIMIT_EvalSimpleNetwork
|
||||
|
||||
precision=float
|
||||
|
||||
TIMIT_EvalSimpleNetwork=[
|
||||
action=eval
|
||||
|
||||
modelPath=$ExpDir$\TrainSimpleNetwork\model\cntkSpeech.dnn
|
||||
|
||||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
|
||||
traceLevel=1
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=HTKMLFReader
|
||||
# readMethod=blockRandomize
|
||||
readMethod=rollingWindow
|
||||
|
||||
miniBatchMode=Partial
|
||||
randomize=None
|
||||
verbosity=1
|
||||
|
||||
features=[
|
||||
dim=792
|
||||
scpFile=$ScpDir$\TIMIT.dev.scp.fbank.fullpath
|
||||
]
|
||||
|
||||
labels=[
|
||||
mlfFile=$MlfDir$\TIMIT.dev.align_cistate.mlf.cntk
|
||||
labelDim=183
|
||||
labelMappingFile=$MlfDir$\TIMIT.statelist
|
||||
]
|
||||
]
|
||||
]
|
|
@ -1,59 +0,0 @@
|
|||
stderr=$ExpDir$\TrainAutoEncoder\log\log
|
||||
command=TIMIT_TrainAutoEncoder
|
||||
|
||||
precision=float
|
||||
|
||||
#######################################
|
||||
# TRAINING CONFIG (Simple, Fixed LR) #
|
||||
#######################################
|
||||
|
||||
TIMIT_TrainAutoEncoder=[
|
||||
action=train
|
||||
|
||||
modelPath=$ExpDir$\TrainAutoEncoder\model\cntkSpeech.dnn
|
||||
|
||||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
|
||||
traceLevel=1
|
||||
|
||||
# notation xxx:yyy*n:zzz is equivalent to xxx, then yyy repeated n times, then zzz
|
||||
# example: 10:20*3:5 is equivalent to 10:20:20:20:5
|
||||
NDLNetworkBuilder=[
|
||||
ndlMacros=$NdlDir$\default_macros.ndl
|
||||
NetworkDescription=$NdlDir$\ae.ndl
|
||||
]
|
||||
|
||||
SGD=[
|
||||
# epochSize=0 means epochSize is the size of the training set
|
||||
epochSize=0
|
||||
minibatchSize=256
|
||||
learningRatesPerMB=0.1
|
||||
momentumPerMB=0.9
|
||||
dropoutRate=0.0
|
||||
maxEpochs=$MaxNumEpochs$
|
||||
]
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=HTKMLFReader
|
||||
|
||||
# readMethod=blockRandomize
|
||||
readMethod=rollingWindow
|
||||
|
||||
miniBatchMode=Partial
|
||||
randomize=Auto
|
||||
verbosity=1
|
||||
|
||||
featIn=[
|
||||
dim=792
|
||||
scpFile=$FBankScpShort$
|
||||
]
|
||||
|
||||
featOut=[
|
||||
scpFile=$FBankScpShort$
|
||||
dim=792
|
||||
]
|
||||
]
|
||||
]
|
|
@ -1,78 +0,0 @@
|
|||
stderr=$ExpDir$\TrainMultiInput\log\log
|
||||
command=TIMIT_TrainMultiInput
|
||||
|
||||
precision=float
|
||||
|
||||
################################################
|
||||
# TRAINING CONFIG AUTOENCODER (NDL, Fixed LR) #
|
||||
################################################
|
||||
TIMIT_TrainMultiInput=[
|
||||
action=train
|
||||
modelPath=$ExpDir$\TrainMultiInput\model\cntkSpeech.dnn
|
||||
#=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
|
||||
traceLevel=1
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
ndlMacros=$NdlDir$\default_macros.ndl
|
||||
networkDescription=$NdlDir$\mtl_fbank_mfcc.ndl
|
||||
]
|
||||
|
||||
SGD=[
|
||||
epochSize=0
|
||||
minibatchSize=256:1024
|
||||
learningRatesPerMB=0.8:3.2*14:0.08
|
||||
momentumPerMB=0.9
|
||||
dropoutRate=0.0
|
||||
maxEpochs=$MaxNumEpochs$
|
||||
gradientClippingWithTruncation=true
|
||||
clippingThresholdPerSample=1#INF
|
||||
|
||||
#settings for Auto Adjust Learning Rate
|
||||
#AutoAdjust=[
|
||||
# # auto learning rate adjustment
|
||||
# #autoAdjustLR=SearchBeforeEpoch
|
||||
# reduceLearnRateIfImproveLessThan=0
|
||||
# loadBestModel=true
|
||||
# increaseLearnRateIfImproveMoreThan=1000000000
|
||||
# learnRateDecreaseFactor=0.618
|
||||
# learnRateIncreaseFactor=1.382
|
||||
# numMiniBatch4LRSearch=500
|
||||
# numPrevLearnRates=5
|
||||
# numBestSearchEpoch=1
|
||||
#]
|
||||
|
||||
gradientClippingWithTruncation=true
|
||||
clippingThresholdPerSample=1#INF
|
||||
|
||||
]
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
readerType=HTKMLFReader
|
||||
# readMethod=blockRandomize
|
||||
# frameMode=true
|
||||
readMethod=rollingWindow
|
||||
pageFilePath=d:\temp\cntk\TIMIT\CheckInSuites\tempfiles
|
||||
miniBatchMode=Partial
|
||||
randomize=Auto
|
||||
verbosity=1
|
||||
features1=[
|
||||
dim=792
|
||||
scpFile=$FBankScpShort$
|
||||
type=Real
|
||||
]
|
||||
features2=[
|
||||
dim=39
|
||||
scpFile=$MfccScpShort$
|
||||
type=Real
|
||||
]
|
||||
labels=[
|
||||
mlfFile=$MlfDir$\TIMIT.train.align_cistate.mlf.cntk
|
||||
labelMappingFile=$MlfDir$\TIMIT.statelist
|
||||
labelDim=183
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
]
|
|
@ -1,72 +0,0 @@
|
|||
stderr=$ExpDir$\TrainMultiTask\log\log
|
||||
command=TIMIT_TrainMultiTask
|
||||
|
||||
precision=float
|
||||
|
||||
TIMIT_TrainMultiTask=[
|
||||
action=train
|
||||
modelPath=$ExpDir$\TrainMultiTask\model\cntkSpeech.dnn
|
||||
#=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
|
||||
traceLevel=1
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
ndlMacros=$NdlDir$\default_macros.ndl
|
||||
networkDescription=$NdlDir$\mtl_senones_dr.ndl
|
||||
]
|
||||
|
||||
SGD=[
|
||||
epochSize=0
|
||||
minibatchSize=256:1024
|
||||
learningRatesPerMB=0.8:3.2*14:0.08
|
||||
momentumPerMB=0.9
|
||||
dropoutRate=0.0
|
||||
maxEpochs=$MaxNumEpochs$
|
||||
gradientClippingWithTruncation=true
|
||||
clippingThresholdPerSample=1#INF
|
||||
|
||||
#settings for Auto Adjust Learning Rate
|
||||
#AutoAdjust=[
|
||||
# # auto learning rate adjustment
|
||||
# #autoAdjustLR=SearchBeforeEpoch
|
||||
# reduceLearnRateIfImproveLessThan=0
|
||||
# loadBestModel=true
|
||||
# increaseLearnRateIfImproveMoreThan=1000000000
|
||||
# learnRateDecreaseFactor=0.618
|
||||
# learnRateIncreaseFactor=1.382
|
||||
# numMiniBatch4LRSearch=500
|
||||
# numPrevLearnRates=5
|
||||
# numBestSearchEpoch=1
|
||||
#]
|
||||
|
||||
gradientClippingWithTruncation=true
|
||||
clippingThresholdPerSample=1#INF
|
||||
|
||||
]
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
readerType=HTKMLFReader
|
||||
#readMethod=blockRandomize
|
||||
readMethod=rollingWindow
|
||||
miniBatchMode=Partial
|
||||
randomize=Auto
|
||||
verbosity=1
|
||||
features=[
|
||||
dim=792
|
||||
scpFile=$FBankScpShort$
|
||||
]
|
||||
labels=[
|
||||
mlfFile=$MlfDir$\TIMIT.train.align_cistate.mlf.cntk
|
||||
labelMappingFile=$MlfDir$\TIMIT.statelist
|
||||
labelDim=183
|
||||
labelType=Category
|
||||
]
|
||||
regions=[
|
||||
mlfFile=$MlfDir$\TIMIT.train.align_dr.mlf.cntk
|
||||
labelDim=8
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
]
|
|
@ -1,72 +0,0 @@
|
|||
stderr=$ExpDir$\TrainNDLNetwork\log\log
|
||||
command=TIMIT_TrainNDLNetwork
|
||||
|
||||
precision=float
|
||||
|
||||
#######################################
|
||||
# TRAINING CONFIG (NDL, Fixed LR) #
|
||||
#######################################
|
||||
TIMIT_TrainNDLNetwork=[
|
||||
action=train
|
||||
|
||||
modelPath=$ExpDir$\TrainNDLNetwork\model\cntkSpeech.dnn
|
||||
|
||||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
|
||||
traceLevel=1
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
ndlMacros=$NdlDir$\default_macros.ndl
|
||||
networkDescription=$NdlDir$\classify.ndl
|
||||
]
|
||||
|
||||
SGD=[
|
||||
epochSize=0
|
||||
minibatchSize=256:1024
|
||||
learningRatesPerMB=0.8:3.2*14:0.08
|
||||
momentumPerMB=0.9
|
||||
dropoutRate=0.0
|
||||
maxEpochs=$MaxNumEpochs$
|
||||
|
||||
#settings for Auto Adjust Learning Rate
|
||||
#AutoAdjust=[
|
||||
# # auto learning rate adjustment
|
||||
# #autoAdjustLR=SearchBeforeEpoch
|
||||
# reduceLearnRateIfImproveLessThan=0
|
||||
# loadBestModel=true
|
||||
# increaseLearnRateIfImproveMoreThan=1000000000
|
||||
# learnRateDecreaseFactor=0.618
|
||||
# learnRateIncreaseFactor=1.382
|
||||
# numMiniBatch4LRSearch=500
|
||||
# numPrevLearnRates=5
|
||||
# numBestSearchEpoch=1
|
||||
#]
|
||||
|
||||
gradientClippingWithTruncation=true
|
||||
clippingThresholdPerSample=1#INF
|
||||
|
||||
]
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=HTKMLFReader
|
||||
# readMethod=blockRandomize
|
||||
readMethod=rollingWindow
|
||||
miniBatchMode=Partial
|
||||
randomize=Auto
|
||||
verbosity=1
|
||||
myFeatures=[
|
||||
dim=792
|
||||
scpFile=$FBankScpShort$
|
||||
]
|
||||
|
||||
myLabels=[
|
||||
mlfFile=$MlfDir$\TIMIT.train.align_cistate.mlf.cntk
|
||||
labelDim=183
|
||||
labelMappingFile=$MlfDir$\TIMIT.statelist
|
||||
]
|
||||
|
||||
]
|
||||
]
|
|
@ -1,66 +0,0 @@
|
|||
stderr=$ExpDir$\TrainSimpleNetwork\log\log
|
||||
command=TIMIT_TrainSimpleNetwork
|
||||
|
||||
precision=float
|
||||
|
||||
#######################################
|
||||
# TRAINING CONFIG (Simple, Fixed LR) #
|
||||
#######################################
|
||||
|
||||
TIMIT_TrainSimpleNetwork=[
|
||||
action=train
|
||||
|
||||
modelPath=$ExpDir$\TrainSimpleNetwork\model\cntkSpeech.dnn
|
||||
|
||||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
|
||||
traceLevel=1
|
||||
|
||||
# notation xxx:yyy*n:zzz is equivalent to xxx, then yyy repeated n times, then zzz
|
||||
# example: 10:20*3:5 is equivalent to 10:20:20:20:5
|
||||
SimpleNetworkBuilder=[
|
||||
layerSizes=792:512*3:183
|
||||
trainingCriterion=CrossEntropyWithSoftmax
|
||||
evalCriterion=ErrorPrediction
|
||||
layerTypes=Sigmoid
|
||||
initValueScale=1.0
|
||||
applyMeanVarNorm=true
|
||||
uniformInit=true
|
||||
needPrior=true
|
||||
]
|
||||
|
||||
SGD=[
|
||||
# epochSize=0 means epochSize is the size of the training set
|
||||
epochSize=0
|
||||
minibatchSize=256:1024
|
||||
learningRatesPerMB=0.8:3.2*14:0.08
|
||||
momentumPerMB=0.9
|
||||
dropoutRate=0.0
|
||||
maxEpochs=$MaxNumEpochs$
|
||||
]
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=HTKMLFReader
|
||||
|
||||
# readMethod=blockRandomize
|
||||
readMethod=rollingWindow
|
||||
|
||||
miniBatchMode=Partial
|
||||
randomize=Auto
|
||||
verbosity=1
|
||||
|
||||
features=[
|
||||
dim=792
|
||||
scpFile=$FBankScpShort$
|
||||
]
|
||||
|
||||
labels=[
|
||||
mlfFile=$MlfDir$\TIMIT.train.align_cistate.mlf.cntk
|
||||
labelDim=183
|
||||
labelMappingFile=$MlfDir$\TIMIT.statelist
|
||||
]
|
||||
]
|
||||
]
|
|
@ -1,40 +0,0 @@
|
|||
stderr=$ExpDir$\WriteBottleneck\log\log
|
||||
command=TIMIT_WriteBottleneck
|
||||
|
||||
precision=float
|
||||
|
||||
##################
|
||||
# WRITER CONFIG #
|
||||
##################
|
||||
TIMIT_WriteBottleneck=[
|
||||
action=write
|
||||
|
||||
modelPath=$ExpDir$\TrainAutoEncoder\model\cntkSpeech.dnn
|
||||
|
||||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
|
||||
traceLevel=1
|
||||
|
||||
# notation xxx:yyy*3:zzz is equivalent to xxx:yyy:yyy:yyy:zzz
|
||||
outputNodeNames=L2.BFF.FF.P
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=HTKMLFReader
|
||||
featIn=[
|
||||
dim=792
|
||||
scpFile=$FBankScpShortTest$
|
||||
type=Real
|
||||
]
|
||||
]
|
||||
writer=[
|
||||
writerType=HTKMLFWriter
|
||||
L2.BFF.FF.P = [
|
||||
dim=64
|
||||
scpFile=$BNeckScpShortTest$
|
||||
type=Real
|
||||
]
|
||||
]
|
||||
]
|
|
@ -1,40 +0,0 @@
|
|||
stderr=$ExpDir$\WriteScaledLogLike\log\log
|
||||
command=TIMIT_WriteScaledLogLike
|
||||
|
||||
precision=float
|
||||
|
||||
##################
|
||||
# WRITER CONFIG #
|
||||
##################
|
||||
TIMIT_WriteScaledLogLike=[
|
||||
action=write
|
||||
|
||||
modelPath=$ExpDir$\TrainSimpleNetwork\model\cntkSpeech.dnn
|
||||
|
||||
# deviceId=-1 for CPU, >=0 for GPU devices
|
||||
deviceId=$DeviceNumber$
|
||||
|
||||
traceLevel=1
|
||||
|
||||
# notation xxx:yyy*3:zzz is equivalent to xxx:yyy:yyy:yyy:zzz
|
||||
outputNodeNames=ScaledLogLikelihood
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=HTKMLFReader
|
||||
features=[
|
||||
dim=792
|
||||
scpFile=$FBankScpShortTest$
|
||||
type=Real
|
||||
]
|
||||
]
|
||||
writer=[
|
||||
writerType=HTKMLFWriter
|
||||
ScaledLogLikelihood = [
|
||||
dim=183
|
||||
scpFile=$LogLikeScpShortTest$
|
||||
type=Real
|
||||
]
|
||||
]
|
||||
]
|
|
@ -1,22 +0,0 @@
|
|||
# globals.config - config for ASR check-in tests
|
||||
|
||||
# the following variables must be passed on the command line to CNTK:
|
||||
# - WorkDir e.g. ..\..\..\ExampleSetups\ASR\TIMIT # assumes current directory is location of this config file; override on cmd line if not correct
|
||||
# - ExpDir e.g. ..\test_out\cpu
|
||||
# - LibDir e.g. $WorkDir$\lib
|
||||
# - ScpDir e.g. $LibDir$\scp
|
||||
|
||||
# data paths
|
||||
FBankScpShort=$ScpDir$\TIMIT.train.scp.fbank.fullpath.100
|
||||
MfccScpShort=$ScpDir$\TIMIT.train.scp.mfcc.fullpath.100
|
||||
FBankScpShortTest=$ScpDir$\TIMIT.core.scp.fbank.fullpath.20
|
||||
LogLikeScpShortTest=$ScpDir$\TIMIT.core.scp.scaledloglike.fullpath.20
|
||||
BNeckScpShortTest=$ScpDir$\TIMIT.core.scp.bottleneck.fullpath.20
|
||||
|
||||
MlfDir=$LibDir$\mlf
|
||||
|
||||
# config paths & parameters
|
||||
ConfigDir=$WorkDir$\config
|
||||
NdlDir=$ConfigDir$
|
||||
MelDir=$ConfigDir$
|
||||
MaxNumEpochs=5
|
|
@ -1,37 +0,0 @@
|
|||
::: first argument is CPU or GPU
|
||||
set PROC=%1
|
||||
::: second argument is buildconfig (Release or Debug)
|
||||
set BUILD=%2
|
||||
echo running ASR test on %PROC%
|
||||
|
||||
::: the CNTK executable is found relative to this BAT file
|
||||
set THIS=%~dp0
|
||||
set ROOT=%THIS%..\..\..
|
||||
|
||||
set CNTK=%ROOT%\x64\%2\CNTK.exe
|
||||
|
||||
::: directories we pass in to CNTK config
|
||||
|
||||
::: example setups are here
|
||||
set WorkDir=%ROOT%\ExampleSetups\ASR\TIMIT
|
||||
set ExpDir=%THIS%..\test_out
|
||||
set LibDir=%WorkDir%\lib
|
||||
set ScpDir=%LibDir%\scp
|
||||
|
||||
::: run all tests
|
||||
::: TODO: fix the log path, it seems it cannot be passed to CNTK currently on the command line
|
||||
for %%t in (TrainSimpleNetwork TrainNDLNetwork TrainAutoEncoder TrainMultiInput TrainMultiTask EvalSimpleNetwork WriteScaledLogLike WriteBottleneck) do (
|
||||
echo ------
|
||||
echo running test TIMIT_%%t.config logging to %ExpDir%\%%t\log\log_TIMIT_%%t.log
|
||||
%CNTK% WorkDir=%WorkDir% ExpDir=%ExpDir% LibDir=%LibDir% ScpDir=%ScpDir% configFile=%THIS%globals.config+%THIS%select_%PROC%.config+%THIS%TIMIT_%%t.config
|
||||
if ERRORLEVEL 1 (
|
||||
echo CNTK FAILED:
|
||||
findstr /I EXCEPTION %ExpDir%\%%t\log\log_TIMIT_%%t.log
|
||||
) else (
|
||||
echo CNTK OUTPUT:
|
||||
findstr /I Finished %ExpDir%\%%t\log\log_TIMIT_%%t.log
|
||||
findstr /I EXCEPTION %ExpDir%\%%t\log\log_TIMIT_%%t.log
|
||||
echo REFERENCE:
|
||||
findstr /I Finished %THIS%..\%PROC%\%%t.output
|
||||
)
|
||||
)
|
|
@ -1 +0,0 @@
|
|||
DeviceNumber=-1
|
|
@ -1 +0,0 @@
|
|||
DeviceNumber=0
|
|
@ -1,193 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\add_layer.mel" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\ae.ndl" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\classify.ndl" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\create_1layer.ndl" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\default_macros.ndl" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\globals.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\lstm.ndl" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\mtl_fbank_mfcc.ndl" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\mtl_senones_dr.ndl" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\PAC-RNN.ndl" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\README.txt" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_AdaptLearnRate.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_CrossValidateSimpleNetwork.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_EvalSimpleNetwork.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainAutoEncoder.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainLSTM.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainMultiInput.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainMultiTask.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainNDLNetwork.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainSimpleNetwork.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainWithPreTrain.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_WriteBottleneck.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_WriteScaledLogLike.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\CPU\LSTM_ExpectedOutputs.txt" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\CPU\TIMIT_DNN.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\CPU\TIMIT_LSTM.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\decoding\TIMIT.bigram.arpa" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\decoding\TIMIT.dnn_map" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\decoding\TIMIT.lookahead" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\decoding\TIMIT.tfsa" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\decoding\TIMIT.transitions" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\GPU\DNN_ExpectedOutputs.txt" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\GPU\LSTM_ExpectedOutputs.txt" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\GPU\TIMIT_DNN.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\GPU\TIMIT_LSTM.config" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\cf\CF.fbank24_zda" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\make_dr_mlf.pl" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\make_mlf_cntk.pl" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.core.align_cistate.mlf" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.core.align_cistate.mlf.cntk" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.core.align_dr.mlf.cntk" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.dev.align_cistate.mlf" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.dev.align_cistate.mlf.cntk" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.dev.align_dr.mlf.cntk" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.statelist" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.train.align_cistate.mlf" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.train.align_cistate.mlf.cntk" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.train.align_dr.mlf.cntk" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.core.scp.bottleneck.fullpath" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.core.scp.bottleneck.fullpath.20" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.core.scp.fbank.fullpath" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.core.scp.fbank.fullpath.20" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.core.scp.scaledloglike.fullpath" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.core.scp.scaledloglike.fullpath.20" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.dev.scp.fbank.fullpath" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.dev.scp.fbank.fullpath.rnn" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.dev.scp.fbank.fullpath.rnn.20" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.fbank" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.fbank.fullpath" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.fbank.fullpath.100" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.fbank.fullpath.rnn" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.fbank.fullpath.rnn.100" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.mfcc.fullpath" />
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.mfcc.fullpath.100" />
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\ExpectedResults.log" />
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\global.config" />
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\lstmlm.gpu.config" />
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\lstmlmconfig.txt" />
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\perplexity.nce100.lr0.1.txt" />
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\ptb.test.cntk.100.txt" />
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\ptb.train.cntk.100.txt" />
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\ptb.valid.cntk.100.txt" />
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\CPU\ExpectedOutputs.txt" />
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\CPU\fnnlm.config" />
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\CPU\global.config" />
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\CPU\rnnlm.config" />
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\GPU\ExpectedOutputs.txt" />
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\GPU\fnnlm.config" />
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\GPU\global.config" />
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\GPU\rnnlm.config" />
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\GPU\rnnlm.gpu.config" />
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\rnnlm.ndl" />
|
||||
<None Include="..\..\ExampleSetups\NdlExamples\NDLExamples.ndl" />
|
||||
<None Include="..\..\ExampleSetups\SLU\conlleval.pl" />
|
||||
<None Include="..\..\ExampleSetups\SLU\feat.txt" />
|
||||
<None Include="..\..\ExampleSetups\SLU\globals.config" />
|
||||
<None Include="..\..\ExampleSetups\SLU\lbl.txt" />
|
||||
<None Include="..\..\ExampleSetups\SLU\lstmNDL.txt" />
|
||||
<None Include="..\..\ExampleSetups\SLU\README.txt" />
|
||||
<None Include="..\..\ExampleSetups\SLU\rnnlu.config" />
|
||||
<None Include="..\..\ExampleSetups\SLU\rnnluModelEditor.txt" />
|
||||
<None Include="..\..\ExampleSetups\SLU\score.sh" />
|
||||
<None Include="ASR\config\globals.config" />
|
||||
<None Include="ASR\config\README.txt" />
|
||||
<None Include="ASR\config\runall.bat" />
|
||||
<None Include="ASR\config\select_cpu.config" />
|
||||
<None Include="ASR\config\select_gpu.config" />
|
||||
<None Include="ASR\config\TIMIT_EvalSimpleNetwork.config" />
|
||||
<None Include="ASR\config\TIMIT_TrainAutoEncoder.config" />
|
||||
<None Include="ASR\config\TIMIT_TrainMultiInput.config" />
|
||||
<None Include="ASR\config\TIMIT_TrainMultiTask.config" />
|
||||
<None Include="ASR\config\TIMIT_TrainNDLNetwork.config" />
|
||||
<None Include="ASR\config\TIMIT_TrainSimpleNetwork.config" />
|
||||
<None Include="ASR\config\TIMIT_WriteBottleneck.config" />
|
||||
<None Include="ASR\config\TIMIT_WriteScaledLogLike.config" />
|
||||
<None Include="ASR\CPU\EvalSimpleNetwork.output" />
|
||||
<None Include="ASR\CPU\TrainAutoEncoder.output" />
|
||||
<None Include="ASR\CPU\TrainMultiInput.output" />
|
||||
<None Include="ASR\CPU\TrainMultiTask.output" />
|
||||
<None Include="ASR\CPU\TrainNDLNetwork.output" />
|
||||
<None Include="ASR\CPU\TrainSimpleNetwork.output" />
|
||||
<None Include="ASR\GPU\EvalSimpleNetwork.output" />
|
||||
<None Include="ASR\GPU\TrainAutoEncoder.output" />
|
||||
<None Include="ASR\GPU\TrainMultiInput.output" />
|
||||
<None Include="ASR\GPU\TrainMultiTask.output" />
|
||||
<None Include="ASR\GPU\TrainNDLNetwork.output" />
|
||||
<None Include="ASR\GPU\TrainSimpleNetwork.output" />
|
||||
<None Include="LM\RNNLM\CPU\ExpectedOutputs.txt" />
|
||||
<None Include="LM\RNNLM\CPU\global.config" />
|
||||
<None Include="LM\RNNLM\CPU\rnnlm.config" />
|
||||
<None Include="LM\RNNLM\GPU\ExpectedOutputs.txt" />
|
||||
<None Include="LM\RNNLM\GPU\rnnlm.config" />
|
||||
<None Include="MNIST\CPU\expectedresults.txt" />
|
||||
<None Include="MNIST\DefaultMacros.ndl" />
|
||||
<None Include="MNIST\Example.ndl" />
|
||||
<None Include="MNIST\GPU\expectedresults.txt" />
|
||||
<None Include="MNIST\mnistCheckIn.config" />
|
||||
<None Include="MNIST\mnistlabels.txt" />
|
||||
<None Include="runall.bat" />
|
||||
<None Include="SLU\atis.dev.IOB.simple" />
|
||||
<None Include="SLU\atis.test.apos.pred.pos.head.IOB.simple" />
|
||||
<None Include="SLU\atis.train.apos.pred.pos.head.IOB.simple" />
|
||||
<None Include="SLU\globals.config" />
|
||||
<None Include="SLU\input.txt" />
|
||||
<None Include="SLU\inputmap.txt" />
|
||||
<None Include="SLU\lstmNDL.txt" />
|
||||
<None Include="SLU\output.txt" />
|
||||
<None Include="SLU\README.txt" />
|
||||
<None Include="SLU\rnnlu.config" />
|
||||
<None Include="SLU\rnnlu.ndl.config" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{DBB3C106-B0B4-4059-8477-C89528CEC1B0}</ProjectGuid>
|
||||
<Keyword>MakeFileProj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<PlatformToolset>v120</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<NMakePreprocessorDefinitions>WIN32;_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
|
||||
<NMakeBuildCommandLine>runall.bat $(Configuration)</NMakeBuildCommandLine>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<NMakePreprocessorDefinitions>WIN32;NDEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
|
||||
<NMakeBuildCommandLine>runall.bat $(Configuration)</NMakeBuildCommandLine>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
</ItemDefinitionGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
|
@ -1,517 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="CheckInSuites">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0000}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="CheckInSuites\ASR">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0001}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="CheckInSuites\ASR\config">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0002}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="CheckInSuites\ASR\CPU">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0003}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="CheckInSuites\ASR\GPU">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0004}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="CheckInSuites\LM">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0005}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="CheckInSuites\LM\RNNLM">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0006}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="CheckInSuites\LM\RNNLM\CPU">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0007}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="CheckInSuites\LM\RNNLM\GPU">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0008}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="CheckInSuites\MNIST">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0009}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="CheckInSuites\MNIST\CPU">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0010}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="CheckInSuites\MNIST\GPU">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0011}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="CheckInSuites\SLU">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0012}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0013}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\ASR">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0014}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\ASR\TIMIT">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0015}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\ASR\TIMIT\config">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0016}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\ASR\TIMIT\CPU">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0017}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\ASR\TIMIT\decoding">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0018}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\ASR\TIMIT\GPU">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0019}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\ASR\TIMIT\lib">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0020}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\ASR\TIMIT\lib\cf">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0021}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\ASR\TIMIT\lib\mlf">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0022}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\ASR\TIMIT\lib\scp">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0023}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\LM">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0024}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\LM\LSTMLM">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0025}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\LM\RNNLM">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0026}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\LM\RNNLM\CPU">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0027}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\LM\RNNLM\GPU">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0028}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="ExampleSetups\SLU">
|
||||
<UniqueIdentifier>{39d7aaf4-beea-43e1-8bc3-1c2a442f0029}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\add_layer.mel">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\ae.ndl">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\classify.ndl">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\create_1layer.ndl">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\default_macros.ndl">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\globals.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\lstm.ndl">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\mtl_fbank_mfcc.ndl">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\mtl_senones_dr.ndl">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\PAC-RNN.ndl">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\README.txt">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_AdaptLearnRate.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_CrossValidateSimpleNetwork.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_EvalSimpleNetwork.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainAutoEncoder.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainLSTM.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainMultiInput.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainMultiTask.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainNDLNetwork.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainSimpleNetwork.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_TrainWithPreTrain.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_WriteBottleneck.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\config\TIMIT_WriteScaledLogLike.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\config</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\CPU\LSTM_ExpectedOutputs.txt">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\CPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\CPU\TIMIT_DNN.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\CPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\CPU\TIMIT_LSTM.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\CPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\decoding\TIMIT.bigram.arpa">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\decoding</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\decoding\TIMIT.dnn_map">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\decoding</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\decoding\TIMIT.lookahead">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\decoding</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\decoding\TIMIT.tfsa">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\decoding</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\decoding\TIMIT.transitions">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\decoding</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\GPU\DNN_ExpectedOutputs.txt">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\GPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\GPU\LSTM_ExpectedOutputs.txt">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\GPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\GPU\TIMIT_DNN.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\GPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\GPU\TIMIT_LSTM.config">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\GPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\cf\CF.fbank24_zda">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\cf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\make_dr_mlf.pl">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\mlf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\make_mlf_cntk.pl">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\mlf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.core.align_cistate.mlf">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\mlf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.core.align_cistate.mlf.cntk">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\mlf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.core.align_dr.mlf.cntk">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\mlf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.dev.align_cistate.mlf">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\mlf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.dev.align_cistate.mlf.cntk">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\mlf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.dev.align_dr.mlf.cntk">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\mlf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.statelist">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\mlf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.train.align_cistate.mlf">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\mlf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.train.align_cistate.mlf.cntk">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\mlf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\mlf\TIMIT.train.align_dr.mlf.cntk">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\mlf</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.core.scp.bottleneck.fullpath">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.core.scp.bottleneck.fullpath.20">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.core.scp.fbank.fullpath">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.core.scp.fbank.fullpath.20">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.core.scp.scaledloglike.fullpath">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.core.scp.scaledloglike.fullpath.20">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.dev.scp.fbank.fullpath">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.dev.scp.fbank.fullpath.rnn">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.dev.scp.fbank.fullpath.rnn.20">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.fbank">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.fbank.fullpath">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.fbank.fullpath.100">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.fbank.fullpath.rnn">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.fbank.fullpath.rnn.100">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.mfcc.fullpath">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\ASR\TIMIT\lib\scp\TIMIT.train.scp.mfcc.fullpath.100">
|
||||
<Filter>ExampleSetups\ASR\TIMIT\lib\scp</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\ExpectedResults.log">
|
||||
<Filter>ExampleSetups\LM\LSTMLM</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\global.config">
|
||||
<Filter>ExampleSetups\LM\LSTMLM</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\lstmlm.gpu.config">
|
||||
<Filter>ExampleSetups\LM\LSTMLM</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\lstmlmconfig.txt">
|
||||
<Filter>ExampleSetups\LM\LSTMLM</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\perplexity.nce100.lr0.1.txt">
|
||||
<Filter>ExampleSetups\LM\LSTMLM</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\ptb.test.cntk.100.txt">
|
||||
<Filter>ExampleSetups\LM\LSTMLM</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\ptb.train.cntk.100.txt">
|
||||
<Filter>ExampleSetups\LM\LSTMLM</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\LSTMLM\ptb.valid.cntk.100.txt">
|
||||
<Filter>ExampleSetups\LM\LSTMLM</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\CPU\ExpectedOutputs.txt">
|
||||
<Filter>ExampleSetups\LM\RNNLM\CPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\CPU\fnnlm.config">
|
||||
<Filter>ExampleSetups\LM\RNNLM\CPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\CPU\global.config">
|
||||
<Filter>ExampleSetups\LM\RNNLM\CPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\CPU\rnnlm.config">
|
||||
<Filter>ExampleSetups\LM\RNNLM\CPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\GPU\ExpectedOutputs.txt">
|
||||
<Filter>ExampleSetups\LM\RNNLM\GPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\GPU\fnnlm.config">
|
||||
<Filter>ExampleSetups\LM\RNNLM\GPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\GPU\global.config">
|
||||
<Filter>ExampleSetups\LM\RNNLM\GPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\GPU\rnnlm.config">
|
||||
<Filter>ExampleSetups\LM\RNNLM\GPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\GPU\rnnlm.gpu.config">
|
||||
<Filter>ExampleSetups\LM\RNNLM\GPU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\LM\RNNLM\rnnlm.ndl">
|
||||
<Filter>ExampleSetups\LM\RNNLM</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\SLU\conlleval.pl">
|
||||
<Filter>ExampleSetups\SLU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\SLU\feat.txt">
|
||||
<Filter>ExampleSetups\SLU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\SLU\globals.config">
|
||||
<Filter>ExampleSetups\SLU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\SLU\lbl.txt">
|
||||
<Filter>ExampleSetups\SLU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\SLU\lstmNDL.txt">
|
||||
<Filter>ExampleSetups\SLU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\SLU\README.txt">
|
||||
<Filter>ExampleSetups\SLU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\SLU\rnnlu.config">
|
||||
<Filter>ExampleSetups\SLU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\SLU\rnnluModelEditor.txt">
|
||||
<Filter>ExampleSetups\SLU</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\SLU\score.sh">
|
||||
<Filter>ExampleSetups\SLU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\README.txt">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\runall.bat">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\TIMIT_EvalSimpleNetwork.config">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\TIMIT_TrainAutoEncoder.config">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\TIMIT_TrainMultiInput.config">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\TIMIT_TrainMultiTask.config">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\TIMIT_TrainNDLNetwork.config">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\TIMIT_TrainSimpleNetwork.config">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\TIMIT_WriteBottleneck.config">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\TIMIT_WriteScaledLogLike.config">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="ASR\CPU\EvalSimpleNetwork.output">
|
||||
<Filter>CheckInSuites\ASR\CPU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\CPU\TrainAutoEncoder.output">
|
||||
<Filter>CheckInSuites\ASR\CPU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\CPU\TrainMultiInput.output">
|
||||
<Filter>CheckInSuites\ASR\CPU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\CPU\TrainMultiTask.output">
|
||||
<Filter>CheckInSuites\ASR\CPU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\CPU\TrainNDLNetwork.output">
|
||||
<Filter>CheckInSuites\ASR\CPU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\CPU\TrainSimpleNetwork.output">
|
||||
<Filter>CheckInSuites\ASR\CPU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\GPU\EvalSimpleNetwork.output">
|
||||
<Filter>CheckInSuites\ASR\GPU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\GPU\TrainAutoEncoder.output">
|
||||
<Filter>CheckInSuites\ASR\GPU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\GPU\TrainMultiInput.output">
|
||||
<Filter>CheckInSuites\ASR\GPU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\GPU\TrainMultiTask.output">
|
||||
<Filter>CheckInSuites\ASR\GPU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\GPU\TrainNDLNetwork.output">
|
||||
<Filter>CheckInSuites\ASR\GPU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\GPU\TrainSimpleNetwork.output">
|
||||
<Filter>CheckInSuites\ASR\GPU</Filter>
|
||||
</None>
|
||||
<None Include="LM\RNNLM\CPU\ExpectedOutputs.txt">
|
||||
<Filter>CheckInSuites\LM\RNNLM\CPU</Filter>
|
||||
</None>
|
||||
<None Include="LM\RNNLM\CPU\global.config">
|
||||
<Filter>CheckInSuites\LM\RNNLM\CPU</Filter>
|
||||
</None>
|
||||
<None Include="LM\RNNLM\CPU\rnnlm.config">
|
||||
<Filter>CheckInSuites\LM\RNNLM\CPU</Filter>
|
||||
</None>
|
||||
<None Include="LM\RNNLM\GPU\ExpectedOutputs.txt">
|
||||
<Filter>CheckInSuites\LM\RNNLM\GPU</Filter>
|
||||
</None>
|
||||
<None Include="LM\RNNLM\GPU\rnnlm.config">
|
||||
<Filter>CheckInSuites\LM\RNNLM\GPU</Filter>
|
||||
</None>
|
||||
<None Include="MNIST\CPU\expectedresults.txt">
|
||||
<Filter>CheckInSuites\MNIST\CPU</Filter>
|
||||
</None>
|
||||
<None Include="MNIST\DefaultMacros.ndl">
|
||||
<Filter>CheckInSuites\MNIST</Filter>
|
||||
</None>
|
||||
<None Include="MNIST\Example.ndl">
|
||||
<Filter>CheckInSuites\MNIST</Filter>
|
||||
</None>
|
||||
<None Include="MNIST\GPU\expectedresults.txt">
|
||||
<Filter>CheckInSuites\MNIST\GPU</Filter>
|
||||
</None>
|
||||
<None Include="MNIST\mnistCheckIn.config">
|
||||
<Filter>CheckInSuites\MNIST</Filter>
|
||||
</None>
|
||||
<None Include="MNIST\mnistlabels.txt">
|
||||
<Filter>CheckInSuites\MNIST</Filter>
|
||||
</None>
|
||||
<None Include="SLU\atis.dev.IOB.simple">
|
||||
<Filter>CheckInSuites\SLU</Filter>
|
||||
</None>
|
||||
<None Include="SLU\atis.test.apos.pred.pos.head.IOB.simple">
|
||||
<Filter>CheckInSuites\SLU</Filter>
|
||||
</None>
|
||||
<None Include="SLU\atis.train.apos.pred.pos.head.IOB.simple">
|
||||
<Filter>CheckInSuites\SLU</Filter>
|
||||
</None>
|
||||
<None Include="SLU\globals.config">
|
||||
<Filter>CheckInSuites\SLU</Filter>
|
||||
</None>
|
||||
<None Include="SLU\input.txt">
|
||||
<Filter>CheckInSuites\SLU</Filter>
|
||||
</None>
|
||||
<None Include="SLU\inputmap.txt">
|
||||
<Filter>CheckInSuites\SLU</Filter>
|
||||
</None>
|
||||
<None Include="SLU\lstmNDL.txt">
|
||||
<Filter>CheckInSuites\SLU</Filter>
|
||||
</None>
|
||||
<None Include="SLU\output.txt">
|
||||
<Filter>CheckInSuites\SLU</Filter>
|
||||
</None>
|
||||
<None Include="SLU\README.txt">
|
||||
<Filter>CheckInSuites\SLU</Filter>
|
||||
</None>
|
||||
<None Include="SLU\rnnlu.config">
|
||||
<Filter>CheckInSuites\SLU</Filter>
|
||||
</None>
|
||||
<None Include="SLU\rnnlu.ndl.config">
|
||||
<Filter>CheckInSuites\SLU</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\globals.config">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\select_cpu.config">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="ASR\config\select_gpu.config">
|
||||
<Filter>CheckInSuites\ASR\config</Filter>
|
||||
</None>
|
||||
<None Include="runall.bat">
|
||||
<Filter>CheckInSuites</Filter>
|
||||
</None>
|
||||
<None Include="..\..\ExampleSetups\NdlExamples\NDLExamples.ndl">
|
||||
<Filter>ExampleSetups</Filter>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,21 +0,0 @@
|
|||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 0.40258092 EvalErr Per Sample = 0.12081667 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=11.784
|
||||
Finished Epoch[1]: [Validation Set] Train Loss Per Sample = 0.24683523 EvalErr Per Sample = 0.073100001
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 0.19932216 EvalErr Per Sample = 0.058800001 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=3.7809999
|
||||
Finished Epoch[2]: [Validation Set] Train Loss Per Sample = 0.18965457 EvalErr Per Sample = 0.056000002
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 0.1451894 EvalErr Per Sample = 0.043366667 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=4.5050001
|
||||
Finished Epoch[3]: [Validation Set] Train Loss Per Sample = 0.12459327 EvalErr Per Sample = 0.037
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 0.11351292 EvalErr Per Sample = 0.033433333 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=3.763
|
||||
Finished Epoch[4]: [Validation Set] Train Loss Per Sample = 0.11849558 EvalErr Per Sample = 0.035700001
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 0.094123989 EvalErr Per Sample = 0.027466668 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=8.2119999
|
||||
Finished Epoch[5]: [Validation Set] Train Loss Per Sample = 0.097263642 EvalErr Per Sample = 0.0297
|
||||
Finished Epoch[6]: [Training Set] Train Loss Per Sample = 0.079397582 EvalErr Per Sample = 0.023949999 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=3.4319999
|
||||
Finished Epoch[6]: [Validation Set] Train Loss Per Sample = 0.086300962 EvalErr Per Sample = 0.0262
|
||||
Finished Epoch[7]: [Training Set] Train Loss Per Sample = 0.067904279 EvalErr Per Sample = 0.019966668 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=3.4849999
|
||||
Finished Epoch[7]: [Validation Set] Train Loss Per Sample = 0.084572069 EvalErr Per Sample = 0.025699999
|
||||
Finished Epoch[8]: [Training Set] Train Loss Per Sample = 0.05927179 EvalErr Per Sample = 0.017266667 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=3.493
|
||||
Finished Epoch[8]: [Validation Set] Train Loss Per Sample = 0.086920179 EvalErr Per Sample = 0.0265
|
||||
Finished Epoch[9]: [Training Set] Train Loss Per Sample = 0.052622452 EvalErr Per Sample = 0.015666667 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=4.0120001
|
||||
Finished Epoch[9]: [Validation Set] Train Loss Per Sample = 0.073479153 EvalErr Per Sample = 0.0218
|
||||
Finished Epoch[10]: [Training Set] Train Loss Per Sample = 0.046487566 EvalErr Per Sample = 0.013533333 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=3.7950001
|
||||
Finished Epoch[10]: [Validation Set] Train Loss Per Sample = 0.078413151 EvalErr Per Sample = 0.0243
|
||||
Final Results: Minibatch[1-100]: Samples Seen = 10000 ErrorPrediction/Sample = 0.0243 CrossEntropyWithSoftmax/Sample = 0.078413136
|
|
@ -1,72 +0,0 @@
|
|||
|
||||
# Macro definitions
|
||||
#inline Rectified Linear Feed Forward
|
||||
RFF_R(x1, w1, b1)=RectifiedLinear(Plus(Times(w1,x1),b1))
|
||||
#Feed Forward
|
||||
FF(X1, W1, B1)
|
||||
{
|
||||
T=Times(W1,X1);
|
||||
P=Plus(T, B1);
|
||||
}
|
||||
#Base feed Forward network, defines Bias and wieght parameters
|
||||
BFF(in, rows, cols)
|
||||
{
|
||||
B=Parameter(rows, init="fixedValue", value=0)
|
||||
W=Parameter(rows, cols)
|
||||
FF = FF(in, w, b)
|
||||
}
|
||||
#RectifiedLinear Base Feed Forward
|
||||
RBFF(in,rowCount,colCount)
|
||||
{
|
||||
BFF = BFF(in, rowCount, colCount);
|
||||
RL = RectifiedLinear(BFF);
|
||||
}
|
||||
#Rectified Linear Feed Forward
|
||||
RFF(X2,W2,B2)
|
||||
{
|
||||
FF = FF(X2, W2, B2);
|
||||
RL = RectifiedLinear(FF);
|
||||
}
|
||||
#RectifiedLinear Feed Forward with Dropout
|
||||
RFFD(X3,W3,B3)
|
||||
{
|
||||
RFF=RFF(X3, W3, B3)
|
||||
DO=Dropout(RFF)
|
||||
}
|
||||
#Sigmoid Base Feed Forward
|
||||
SBFF(in,rowCount,colCount)
|
||||
{
|
||||
BFF = BFF(in, rowCount, colCount);
|
||||
S = Sigmoid(BFF);
|
||||
}
|
||||
#Sigmoid Feed Forward
|
||||
SFF(X2,W2,B2)
|
||||
{
|
||||
FF = FF(X2, W2, B2);
|
||||
S = Sigmoid(FF);
|
||||
}
|
||||
#Sigmoid Feed Forward with Dropout
|
||||
SFFD(X3,W3,B3)
|
||||
{
|
||||
SFF=SFF(X3, W3, B3)
|
||||
DO=Dropout(SFF)
|
||||
}
|
||||
#Sigmoid Feed Forward with Dropout
|
||||
SBFFD(input,rowCount,colCount)
|
||||
{
|
||||
SBFF=SBFF(input,rowCount,colCount)
|
||||
DO=Dropout(SBFF)
|
||||
}
|
||||
#SoftMax Feed Forward
|
||||
SMFF(x,y,z, labels)
|
||||
{
|
||||
FF = FF(x,y,z);
|
||||
SM = CrossEntropyWithSoftmax(labels, FF)
|
||||
}
|
||||
#SoftMax Base Feed Forward
|
||||
SMBFF(x,r,c, labels)
|
||||
{
|
||||
BFF = BFF(x,r,c);
|
||||
SM = CrossEntropyWithSoftmax(labels, BFF)
|
||||
}
|
||||
RFFD_R(x1, w1, b1)=Dropout(RectifiedLinear(Plus(Times(w1,x1),b1)))
|
|
@ -1,364 +0,0 @@
|
|||
load=ndlMacroDefine
|
||||
run=ndlFull
|
||||
ndlFull=[
|
||||
SDim=784
|
||||
HDim=256
|
||||
LDim=10
|
||||
B0=Parameter(HDim)
|
||||
W0=Parameter(HDim, SDim)
|
||||
features=Input(SDim)
|
||||
labels=Input(LDim)
|
||||
#mean0=Mean(features)
|
||||
#invstd0=InvStdDev(features)
|
||||
#input=PerDimMeanVarNormalization(features, mean0, invstd0)
|
||||
Times1=Times(W0, features)
|
||||
Plus1=Plus(Times1, B0)
|
||||
RL1=RectifiedLinear(Plus1)
|
||||
B1=Parameter(LDim, 1)
|
||||
W1=Parameter(LDim, HDim)
|
||||
Times2=Times(W1, RL1)
|
||||
Plus2=Plus(Times2, B1)
|
||||
CE=CrossEntropyWithSoftmax(labels, Plus2)
|
||||
ErrPredict=ErrorPrediction(labels, Plus2)
|
||||
FeatureNodes=(features)
|
||||
LabelNodes=(labels)
|
||||
CriterionNodes=(CE)
|
||||
EvalNodes=(ErrPredict)
|
||||
OutputNodes=(Plus2)
|
||||
]
|
||||
|
||||
ndlMacroDefine=[
|
||||
|
||||
# Macro definitions
|
||||
#inline Rectified Linear Feed Forward
|
||||
RFF_R(x1, w1, b1)=RectifiedLinear(Plus(Times(w1,x1),b1))
|
||||
#Feed Forward
|
||||
FF(X1, W1, B1)
|
||||
{
|
||||
T=Times(W1,X1);
|
||||
P=Plus(T, B1);
|
||||
}
|
||||
#Base feed Forward network, defines Bias and wieght parameters
|
||||
BFF(in, rows, cols)
|
||||
{
|
||||
B=Parameter(rows, init="fixedValue", value=0)
|
||||
W=Parameter(rows, cols)
|
||||
FF = FF(in, w, b)
|
||||
}
|
||||
#RectifiedLinear Base Feed Forward
|
||||
RBFF(in,rowCount,colCount)
|
||||
{
|
||||
BFF = BFF(in, rowCount, colCount);
|
||||
RL = RectifiedLinear(BFF);
|
||||
}
|
||||
#Rectified Linear Feed Forward
|
||||
RFF(X2,W2,B2)
|
||||
{
|
||||
FF = FF(X2, W2, B2);
|
||||
RL = RectifiedLinear(FF);
|
||||
}
|
||||
#RectifiedLinear Feed Forward with Dropout
|
||||
RFFD(X3,W3,B3)
|
||||
{
|
||||
RFF=RFF(X3, W3, B3)
|
||||
DO=Dropout(RFF)
|
||||
}
|
||||
#Sigmoid Base Feed Forward
|
||||
SBFF(in,rowCount,colCount)
|
||||
{
|
||||
BFF = BFF(in, rowCount, colCount);
|
||||
S = Sigmoid(BFF);
|
||||
}
|
||||
#Sigmoid Feed Forward
|
||||
SFF(X2,W2,B2)
|
||||
{
|
||||
FF = FF(X2, W2, B2);
|
||||
S = Sigmoid(FF);
|
||||
}
|
||||
#Sigmoid Feed Forward with Dropout
|
||||
SFFD(X3,W3,B3)
|
||||
{
|
||||
SFF=SFF(X3, W3, B3)
|
||||
DO=Dropout(SFF)
|
||||
}
|
||||
#Sigmoid Feed Forward with Dropout
|
||||
SBFFD(input,rowCount,colCount)
|
||||
{
|
||||
SBFF=SBFF(input,rowCount,colCount)
|
||||
DO=Dropout(SBFF)
|
||||
}
|
||||
#SoftMax Feed Forward
|
||||
SMFF(x,y,z, labels)
|
||||
{
|
||||
FF = FF(x,y,z);
|
||||
SM = CrossEntropyWithSoftmax(labels, FF)
|
||||
}
|
||||
#SoftMax Base Feed Forward
|
||||
SMBFF(x,r,c, labels)
|
||||
{
|
||||
BFF = BFF(x,r,c);
|
||||
SM = CrossEntropyWithSoftmax(labels, BFF)
|
||||
}
|
||||
RFFD_R(x1, w1, b1)=Dropout(RectifiedLinear(Plus(Times(w1,x1),b1)))
|
||||
]
|
||||
|
||||
ndlMacroUse2=[
|
||||
# constants defined
|
||||
# Sample, Hidden, and Label dimensions
|
||||
SDim=784
|
||||
HDim=256
|
||||
LDim=10
|
||||
|
||||
features=Input(SDim, tag="feature")
|
||||
labels=Input(LDim, tag="label")
|
||||
|
||||
# compute mean/stddev for mean/stddev normalization
|
||||
fmean = Mean(features);
|
||||
finvstd=InvStdDev(features)
|
||||
finput=PerDimMeanVarNormalization(features, fmean, finvstd)
|
||||
|
||||
# Layer operations
|
||||
L1 = RBFF(finput, HDim, SDim)
|
||||
L2 = RBFF(L1, HDim, HDim)
|
||||
L3 = RBFF(L2, HDim, HDim)
|
||||
CE = SMBFF(L3, LDim, HDim, labels, tag="criterion")
|
||||
Err=ErrorPrediction(labels, CE.BFF, tag="eval")
|
||||
|
||||
# rootNodes defined here
|
||||
OutputNodes=(CE.BFF)
|
||||
]
|
||||
ndlMacroUseCNNSubSample2ZeroPadding=[
|
||||
# constants defined
|
||||
# Sample, Hidden, and Label dimensions
|
||||
SDim=784
|
||||
LDim=10
|
||||
|
||||
features=Input(SDim, tag="feature")
|
||||
labels=Input(LDim, tag="label")
|
||||
|
||||
#convolution
|
||||
inputWidth=28
|
||||
inputHeight=28
|
||||
inputChannels=1
|
||||
kernelWidth=5
|
||||
kernelHeight=5
|
||||
outputChannels=24
|
||||
horizontalSubsample=2
|
||||
verticalSubsample=2
|
||||
|
||||
# weight[outputChannels, kernelWidth * kernelHeight * inputChannels]
|
||||
cvweight=Parameter(outputChannels, 25)
|
||||
cv = Convolution(cvweight, features, inputWidth, inputHeight, inputChannels, kernelWidth, kernelHeight, outputChannels,horizontalSubsample, verticalSubsample, zeroPadding=true)
|
||||
|
||||
#one bias per channel
|
||||
cvbias=Parameter(outputChannels, 1)
|
||||
|
||||
cvplusbias=Plus(cv, cvbias);
|
||||
nlcv=Sigmoid(cvplusbias);
|
||||
|
||||
#outputWidth = (m_inputWidth-1)/m_horizontalSubsample + 1;
|
||||
outputWidth=14
|
||||
#outputHeight = (m_inputHeight-1)/m_verticalSubsample + 1;
|
||||
outputHeight=14
|
||||
|
||||
#maxpooling
|
||||
windowWidth=2
|
||||
windowHeight=2
|
||||
stepW=2
|
||||
stepH=2
|
||||
mp=MaxPooling(nlcv, outputWidth, outputHeight, outputChannels, windowWidth, windowHeight, stepW, stepH)
|
||||
|
||||
#m_outputWidth = (m_inputWidth-m_windowWidth)/m_horizontalSubsample + 1;
|
||||
mpoutputWidth=7
|
||||
#m_outputHeight = (m_inputHeight-m_windowHeight)/m_verticalSubsample + 1;
|
||||
mpoutputHeight=7
|
||||
#m_outputSizePerSample = m_outputWidth * m_outputHeight * m_channels;
|
||||
mpoutputSizePerSample=1176
|
||||
# Layer operations
|
||||
|
||||
HDim=128
|
||||
L1 = SBFF(mp, HDim, mpoutputSizePerSample)
|
||||
CE = SMBFF(L1, LDim, HDim, labels, tag="criterion")
|
||||
Err=ErrorPrediction(labels, CE.BFF, tag="eval")
|
||||
|
||||
# rootNodes defined here
|
||||
OutputNodes=(CE.BFF)
|
||||
]
|
||||
|
||||
ndlMacroUseCNNSubSample2=[
|
||||
# constants defined
|
||||
# Sample, Hidden, and Label dimensions
|
||||
SDim=784
|
||||
LDim=10
|
||||
|
||||
features=Input(SDim, tag="feature")
|
||||
labels=Input(LDim, tag="label")
|
||||
|
||||
#convolution
|
||||
inputWidth=28
|
||||
inputHeight=28
|
||||
inputChannels=1
|
||||
kernelWidth=5
|
||||
kernelHeight=5
|
||||
outputChannels=24
|
||||
horizontalSubsample=2
|
||||
verticalSubsample=2
|
||||
|
||||
# weight[outputChannels, kernelWidth * kernelHeight * inputChannels]
|
||||
cvweight=Parameter(outputChannels, 25)
|
||||
cv = Convolution(cvweight, features, inputWidth, inputHeight, inputChannels, kernelWidth, kernelHeight, outputChannels,horizontalSubsample, verticalSubsample, zeroPadding=false)
|
||||
|
||||
#one bias per channel
|
||||
cvbias=Parameter(outputChannels, 1)
|
||||
|
||||
cvplusbias=Plus(cv, cvbias);
|
||||
nlcv=Sigmoid(cvplusbias);
|
||||
|
||||
#outputWidth = (m_inputWidth-m_kernelWidth)/m_horizontalSubsample + 1;
|
||||
outputWidth=12
|
||||
#outputHeight = (m_inputHeight-m_kernelHeight)/m_verticalSubsample + 1;
|
||||
outputHeight=12
|
||||
|
||||
#maxpooling
|
||||
windowWidth=2
|
||||
windowHeight=2
|
||||
stepW=2
|
||||
stepH=2
|
||||
mp=MaxPooling(nlcv, outputWidth, outputHeight, outputChannels, windowWidth, windowHeight, stepW, stepH)
|
||||
|
||||
#m_outputWidth = (m_inputWidth-m_windowWidth)/m_horizontalSubsample + 1;
|
||||
mpoutputWidth=6
|
||||
#m_outputHeight = (m_inputHeight-m_windowHeight)/m_verticalSubsample + 1;
|
||||
mpoutputHeight=6
|
||||
#m_outputSizePerSample = m_outputWidth * m_outputHeight * m_channels;
|
||||
mpoutputSizePerSample=864
|
||||
# Layer operations
|
||||
|
||||
HDim=128
|
||||
L1 = SBFF(mp, HDim, mpoutputSizePerSample)
|
||||
CE = SMBFF(L1, LDim, HDim, labels, tag="criterion")
|
||||
Err=ErrorPrediction(labels, CE.BFF, tag="eval")
|
||||
|
||||
# rootNodes defined here
|
||||
OutputNodes=(CE.BFF)
|
||||
]
|
||||
|
||||
ndlMacroUseCNN=[
|
||||
# constants defined
|
||||
# Sample, Hidden, and Label dimensions
|
||||
inputWidth=28
|
||||
inputHeight=28
|
||||
inputChannels=1
|
||||
|
||||
SDim=784
|
||||
LDim=10
|
||||
|
||||
features=ImageInput(inputWidth, inputHeight, inputChannels, 1, tag="feature")
|
||||
labels=Input(LDim, tag="label")
|
||||
|
||||
#convolution
|
||||
kernelWidth=5
|
||||
kernelHeight=5
|
||||
outputChannels=24
|
||||
horizontalSubsample=1
|
||||
verticalSubsample=1
|
||||
|
||||
# weight[outputChannels, kernelWidth * kernelHeight * inputChannels]
|
||||
cvweight=Parameter(outputChannels, 25)
|
||||
cv = Convolution(cvweight, features, kernelWidth, kernelHeight, outputChannels,horizontalSubsample, verticalSubsample, zeroPadding=false)
|
||||
|
||||
#one bias per channel
|
||||
cvbias=Parameter(outputChannels, 1)
|
||||
|
||||
cvplusbias=Plus(cv, cvbias);
|
||||
nlcv=Sigmoid(cvplusbias);
|
||||
|
||||
#maxpooling
|
||||
windowWidth=2
|
||||
windowHeight=2
|
||||
stepW=2
|
||||
stepH=2
|
||||
mp=MaxPooling(nlcv, windowWidth, windowHeight, stepW, stepH)
|
||||
|
||||
mpoutputSizePerSample=0
|
||||
# Layer operations
|
||||
|
||||
HDim=128
|
||||
L1 = SBFF(mp, HDim, 0)
|
||||
CE = SMBFF(L1, LDim, HDim, labels, tag="criterion")
|
||||
Err=ErrorPrediction(labels, CE.BFF, tag="eval")
|
||||
|
||||
# rootNodes defined here
|
||||
OutputNodes=(CE.BFF)
|
||||
]
|
||||
|
||||
ndlMacroUseNoBase=[
|
||||
# constants defined
|
||||
# Sample, Hidden, and Label dimensions
|
||||
SDim=784
|
||||
HDim=256
|
||||
LDim=10
|
||||
|
||||
# Weight, Bias, features and label inputs
|
||||
B0=Parameter(HDim, 1, init="fixedValue", value=0)
|
||||
W0=Parameter(HDim, SDim, init="uniform")
|
||||
B1=Parameter(HDim, 1, init="fixedValue", value=0)
|
||||
W1=Parameter(HDim, HDim, init="uniform")
|
||||
B2=Parameter(HDim, 1, init="fixedValue", value=0)
|
||||
W2=Parameter(HDim, HDim, init="uniform")
|
||||
BTop=Parameter(LDim, 1, init="fixedValue", value=0)
|
||||
WTop=Parameter(LDim, HDim, init="uniform")
|
||||
|
||||
features=Input(SDim, tag="feature")
|
||||
labels=Input(LDim, tag="label")
|
||||
|
||||
# Layer operations
|
||||
L1 = RFFD(features, HDim, SDim)
|
||||
L2 = RFFD(L1, HDim, HDim)
|
||||
L3 = RFFD(L2, HDim, HDim)
|
||||
CE = SMFF(L3, LDim, SDim, labels, tag="criterion")
|
||||
Err=ErrorPrediction(labels, CE.BFF, tag="eval")
|
||||
# rootNodes defined here
|
||||
OutputNodes=(CE.BFF)
|
||||
]
|
||||
|
||||
ndlMacroUseMask=[
|
||||
# constants defined
|
||||
# Sample, Hidden, and Label dimensions
|
||||
SDim=784
|
||||
HDim=256
|
||||
LDim=10
|
||||
|
||||
features=Input(SDim, tag="feature")
|
||||
labels=Input(LDim, tag="label")
|
||||
|
||||
# compute mean/stddev for mean/stddev normalization
|
||||
fmean = Mean(features);
|
||||
finvstd=InvStdDev(features)
|
||||
finput=PerDimMeanVarNormalization(features, fmean, finvstd)
|
||||
|
||||
# Layer operations
|
||||
L1 = RBFF(finput, HDim, SDim)
|
||||
L2 = RBFF(L1, HDim, HDim)
|
||||
L3 = RBFF(L2, HDim, HDim)
|
||||
|
||||
# mask layers
|
||||
ML1=RBFF(finput, HDim, SDim)
|
||||
ML2=RBFF(ML1, HDim, HDim)
|
||||
|
||||
# mask
|
||||
L4=ElementTimes(L3, ML2)
|
||||
|
||||
CE = SMBFF(L4, LDim, HDim, labels, tag="criterion")
|
||||
Err=ErrorPrediction(labels, CE.BFF, tag="eval")
|
||||
|
||||
# output nodes
|
||||
Prior=Mean(labels)
|
||||
LP=Log(Prior)
|
||||
O=Minus(CE.BFF, LP)
|
||||
|
||||
# rootNodes defined here
|
||||
OutputNodes=(O)
|
||||
CriterionNodes=(CE)
|
||||
EvaluationNodes(Err)
|
||||
]
|
|
@ -1,21 +0,0 @@
|
|||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 0.40693939 EvalErr Per Sample = 0.1224 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=12.07
|
||||
Finished Epoch[1]: [Validation Set] Train Loss Per Sample = 0.25263566 EvalErr Per Sample = 0.074500002
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 0.20054092 EvalErr Per Sample = 0.058933333 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=2.826
|
||||
Finished Epoch[2]: [Validation Set] Train Loss Per Sample = 0.18347667 EvalErr Per Sample = 0.0539
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 0.1460132 EvalErr Per Sample = 0.042883333 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=2.855
|
||||
Finished Epoch[3]: [Validation Set] Train Loss Per Sample = 0.12613444 EvalErr Per Sample = 0.036600001
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 0.11390968 EvalErr Per Sample = 0.033399999 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=2.858
|
||||
Finished Epoch[4]: [Validation Set] Train Loss Per Sample = 0.11352145 EvalErr Per Sample = 0.034699999
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 0.094562002 EvalErr Per Sample = 0.027450001 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=2.8610001
|
||||
Finished Epoch[5]: [Validation Set] Train Loss Per Sample = 0.099217452 EvalErr Per Sample = 0.029899999
|
||||
Finished Epoch[6]: [Training Set] Train Loss Per Sample = 0.080263816 EvalErr Per Sample = 0.023666667 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=2.777
|
||||
Finished Epoch[6]: [Validation Set] Train Loss Per Sample = 0.084881522 EvalErr Per Sample = 0.027000001
|
||||
Finished Epoch[7]: [Training Set] Train Loss Per Sample = 0.068559825 EvalErr Per Sample = 0.019666666 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=2.849
|
||||
Finished Epoch[7]: [Validation Set] Train Loss Per Sample = 0.090336256 EvalErr Per Sample = 0.027899999
|
||||
Finished Epoch[8]: [Training Set] Train Loss Per Sample = 0.060529299 EvalErr Per Sample = 0.0175 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=2.8210001
|
||||
Finished Epoch[8]: [Validation Set] Train Loss Per Sample = 0.079096399 EvalErr Per Sample = 0.024499999
|
||||
Finished Epoch[9]: [Training Set] Train Loss Per Sample = 0.053066112 EvalErr Per Sample = 0.014983334 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=2.822
|
||||
Finished Epoch[9]: [Validation Set] Train Loss Per Sample = 0.07318607 EvalErr Per Sample = 0.021600001
|
||||
Finished Epoch[10]: [Training Set] Train Loss Per Sample = 0.046927109 EvalErr Per Sample = 0.013333334 Ave Learn Rate Per Sample = 0.006250000093 Epoch Time=2.8299999
|
||||
Finished Epoch[10]: [Validation Set] Train Loss Per Sample = 0.082184061 EvalErr Per Sample = 0.0255
|
||||
Final Results: Minibatch[1-100]: Samples Seen = 10000 ErrorPrediction/Sample = 0.0255 CrossEntropyWithSoftmax/Sample = 0.082184061
|
|
@ -1,372 +0,0 @@
|
|||
# configuration file for CNTK MNIST Before Check-In Tests
|
||||
|
||||
|
||||
ExpFolder=d:\temp\mnist
|
||||
ConfigFolder=D:\CNTK\CheckInSuites\MNIST
|
||||
DataFolder=d:\s2s\mnist
|
||||
|
||||
RunOnDevice=-1
|
||||
|
||||
stderr=$ExpFolder$
|
||||
|
||||
command=mnistTrainSimpleNet:mnistSimpleNetTest
|
||||
|
||||
|
||||
precision=float
|
||||
|
||||
dumpNodeInfo=[
|
||||
action=dumpnode
|
||||
modelPath=$ExpFolder$\mnist_sn.cn
|
||||
printValues=false
|
||||
]
|
||||
|
||||
mnistTrainSimpleNet=[
|
||||
modelPath=$ExpFolder$\mnist_sn.cn
|
||||
action=train
|
||||
traceLevel=0
|
||||
deviceId=$RunOnDevice$
|
||||
|
||||
SimpleNetworkBuilder=[
|
||||
trainingCriterion=CrossEntropyWithSoftmax
|
||||
evalCriterion=ErrorPrediction
|
||||
layerTypes=Sigmoid
|
||||
initValueScale=1.0
|
||||
layerSizes=784:256:10
|
||||
uniformInit=true
|
||||
]
|
||||
|
||||
# configuration file, base parameters
|
||||
SGD=[
|
||||
minibatchSize=32
|
||||
epochSize=0
|
||||
learningRatesPerMB=0.2
|
||||
momentumPerMB=0.90
|
||||
maxEpochs=10
|
||||
|
||||
validateAfterModelReloading=false
|
||||
]
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=UCIFastReader
|
||||
miniBatchMode=Partial
|
||||
randomize=Auto
|
||||
features=[
|
||||
dim=784
|
||||
start=1
|
||||
file=$DataFolder$\mnist_train.txt
|
||||
]
|
||||
labels=[
|
||||
dim=1
|
||||
start=0
|
||||
file=$DataFolder$\mnist_train.txt
|
||||
labelMappingFile=$DataFolder$\mnistlabels.txt
|
||||
labelDim=10
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=UCIFastReader
|
||||
miniBatchMode=Partial
|
||||
randomize=Auto
|
||||
features=[
|
||||
dim=784
|
||||
start=1
|
||||
file=$DataFolder$\mnist_train.txt
|
||||
]
|
||||
labels=[
|
||||
dim=1
|
||||
start=0
|
||||
file=$DataFolder$\mnist_train.txt
|
||||
labelMappingFile=$DataFolder$\mnistlabels.txt
|
||||
labelDim=10
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
|
||||
cvReader=[
|
||||
# reader to use
|
||||
readerType=UCIFastReader
|
||||
miniBatchMode=Partial
|
||||
randomize=None
|
||||
features=[
|
||||
dim=784
|
||||
start=1
|
||||
file=$DataFolder$\mnist_test.txt
|
||||
]
|
||||
labels=[
|
||||
dim=1
|
||||
start=0
|
||||
file=$DataFolder$\mnist_test.txt
|
||||
labelMappingFile=$DataFolder$\mnistlabels.txt
|
||||
labelDim=10
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
mnistTrainNDLNet=[
|
||||
modelPath=$ExpFolder$\mnist_ndl.cn
|
||||
action=train
|
||||
traceLevel=0
|
||||
deviceId=$RunOnDevice$
|
||||
|
||||
NDLNetworkBuilder=[
|
||||
# run=sectionName - this will parse and run the sectionName from the file
|
||||
networkDescription=$ConfigFolder$\Example.ndl
|
||||
run=ndlFull
|
||||
executionEngine=synchronous
|
||||
]
|
||||
|
||||
# configuration file, base parameters
|
||||
SGD=[
|
||||
minibatchSize=32
|
||||
epochSize=0
|
||||
learningRatesPerMB=0.2
|
||||
momentumPerMB=0.90
|
||||
maxEpochs=10
|
||||
|
||||
validateAfterModelReloading=false
|
||||
]
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=UCIFastReader
|
||||
miniBatchMode=Partial
|
||||
randomize=Auto
|
||||
features=[
|
||||
dim=784
|
||||
start=1
|
||||
file=$DataFolder$\mnist_train.txt
|
||||
]
|
||||
labels=[
|
||||
dim=1
|
||||
start=0
|
||||
file=$DataFolder$\mnist_train.txt
|
||||
labelMappingFile=$DataFolder$\mnistlabels.txt
|
||||
labelDim=10
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=UCIFastReader
|
||||
miniBatchMode=Partial
|
||||
randomize=Auto
|
||||
features=[
|
||||
dim=784
|
||||
start=1
|
||||
file=$DataFolder$\mnist_train.txt
|
||||
]
|
||||
labels=[
|
||||
dim=1
|
||||
start=0
|
||||
file=$DataFolder$\mnist_train.txt
|
||||
labelMappingFile=$DataFolder$\mnistlabels.txt
|
||||
labelDim=10
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
|
||||
cvReader=[
|
||||
# reader to use
|
||||
readerType=UCIFastReader
|
||||
miniBatchMode=Partial
|
||||
randomize=None
|
||||
features=[
|
||||
dim=784
|
||||
start=1
|
||||
file=$DataFolder$\mnist_test.txt
|
||||
]
|
||||
labels=[
|
||||
dim=1
|
||||
start=0
|
||||
file=$DataFolder$\mnist_test.txt
|
||||
labelMappingFile=$DataFolder$\mnistlabels.txt
|
||||
labelDim=10
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
mnistAdaptSimpleNet=[
|
||||
modelPath=$ExpFolder$\mnist_adapt.cn
|
||||
action=adapt
|
||||
traceLevel=0
|
||||
deviceId=$RunOnDevice$
|
||||
|
||||
origModelFileName=$ExpFolder$\mnist_sn.cn.1
|
||||
refNodeName=PosteriorProb
|
||||
adaptationRegType=KL
|
||||
adaptationRegWeight=0.1
|
||||
|
||||
# configuration file, base parameters
|
||||
SGD=[
|
||||
minibatchSize=32
|
||||
epochSize=0
|
||||
learningRatesPerMB=0.2
|
||||
momentumPerMB=0.90
|
||||
maxEpochs=10
|
||||
|
||||
validateAfterModelReloading=false
|
||||
]
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=UCIFastReader
|
||||
miniBatchMode=Partial
|
||||
randomize=Auto
|
||||
features=[
|
||||
dim=784
|
||||
start=1
|
||||
file=$DataFolder$\mnist_train.txt
|
||||
]
|
||||
labels=[
|
||||
dim=1
|
||||
start=0
|
||||
file=$DataFolder$\mnist_train.txt
|
||||
labelMappingFile=$DataFolder$\mnistlabels.txt
|
||||
labelDim=10
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=UCIFastReader
|
||||
miniBatchMode=Partial
|
||||
randomize=Auto
|
||||
features=[
|
||||
dim=784
|
||||
start=1
|
||||
file=$DataFolder$\mnist_train.txt
|
||||
]
|
||||
labels=[
|
||||
dim=1
|
||||
start=0
|
||||
file=$DataFolder$\mnist_train.txt
|
||||
labelMappingFile=$DataFolder$\mnistlabels.txt
|
||||
labelDim=10
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
|
||||
cvReader=[
|
||||
# reader to use
|
||||
readerType=UCIFastReader
|
||||
miniBatchMode=Partial
|
||||
randomize=None
|
||||
features=[
|
||||
dim=784
|
||||
start=1
|
||||
file=$DataFolder$\mnist_test.txt
|
||||
]
|
||||
labels=[
|
||||
dim=1
|
||||
start=0
|
||||
file=$DataFolder$\mnist_test.txt
|
||||
labelMappingFile=$DataFolder$\mnistlabels.txt
|
||||
labelDim=10
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
mnistSimpleNetTest=[
|
||||
action=eval
|
||||
deviceId=$RunOnDevice$
|
||||
|
||||
epochSize=10000
|
||||
minibatchSize=100
|
||||
|
||||
modelPath=$ExpFolder$\mnist_sn.cn
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=UCIFastReader
|
||||
miniBatchMode=Partial
|
||||
randomize=None
|
||||
features=[
|
||||
dim=784
|
||||
start=1
|
||||
file=$DataFolder$\mnist_test.txt
|
||||
]
|
||||
labels=[
|
||||
dim=1
|
||||
start=0
|
||||
file=$DataFolder$\mnist_test.txt
|
||||
labelMappingFile=$DataFolder$\mnistlabels.txt
|
||||
labelDim=10
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
mnistSimpleNetCV=[
|
||||
action=cv
|
||||
deviceId=$RunOnDevice$
|
||||
|
||||
epochSize=10000
|
||||
minibatchSize=100
|
||||
|
||||
modelPath=$ExpFolder$\mnist_sn.cn
|
||||
|
||||
crossValidationInterval=1:1:10
|
||||
|
||||
sleepSecondsBetweenRuns=5
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=UCIFastReader
|
||||
miniBatchMode=Partial
|
||||
randomize=None
|
||||
features=[
|
||||
dim=784
|
||||
start=1
|
||||
file=$DataFolder$\mnist_test.txt
|
||||
]
|
||||
labels=[
|
||||
dim=1
|
||||
start=0
|
||||
file=$DataFolder$\mnist_test.txt
|
||||
labelMappingFile=$DataFolder$\mnistlabels.txt
|
||||
labelDim=10
|
||||
labelType=Category
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
mnistSimpleNetWritePrediction=[
|
||||
action=write
|
||||
deviceId=$RunOnDevice$
|
||||
|
||||
epochSize=10000
|
||||
minibatchSize=100
|
||||
|
||||
#outputNodeNames=HLast
|
||||
|
||||
modelPath=$ExpFolder$\mnist_sn.cn
|
||||
|
||||
outputPath=$ExpFolder$\ScaledLogLikelihood
|
||||
|
||||
# Parameter values for the reader
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=UCIFastReader
|
||||
miniBatchMode=Partial
|
||||
randomize=None
|
||||
features=[
|
||||
dim=784
|
||||
start=1
|
||||
file=$DataFolder$\mnist_test.txt
|
||||
]
|
||||
]
|
||||
]
|
|
@ -1,10 +0,0 @@
|
|||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
|
@ -1,22 +0,0 @@
|
|||
::: this runs all tests in this folder
|
||||
::: BUGBUG: so far only the ASR tests have updated pathnames etc., the others are non-functional stubs here that need to be updated
|
||||
::: TODO: find a good solution for specifying directories for data that we cannot distribute with CNTK ourselves.
|
||||
|
||||
set BUILD=%1
|
||||
|
||||
set THIS=%~dp0
|
||||
|
||||
::: ASR tests
|
||||
::: BUGBUG: We do not get to see stdout from CNTK, only from the BAT files.
|
||||
( %THIS%\ASR\config\runall.bat cpu %BUILD% ) 2>&1
|
||||
( %THIS%\ASR\config\runall.bat gpu %BUILD% ) 2>&1
|
||||
|
||||
::: LM tests
|
||||
::: TODO: provide BAT file
|
||||
|
||||
::: MNIST
|
||||
::: TODO: provide BAT file
|
||||
|
||||
::: SLU
|
||||
::: TODO: update paths
|
||||
C:\dev\cntk3\CNTKSolution\x64\Release\cntk configFile=globals.config+rnnlu.config
|
|
@ -1,727 +0,0 @@
|
|||
//
|
||||
// <copyright file="LibSVMBinaryReader.cpp" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//
|
||||
// LibSVMBinaryReader.cpp : Defines the exported functions for the DLL application.
|
||||
//
|
||||
|
||||
#include "stdafx.h"
|
||||
#define DATAREADER_EXPORTS // creating the exports here
|
||||
#include "DataReader.h"
|
||||
#include "LibSVMBinaryReader.h"
|
||||
#ifdef LEAKDETECT
|
||||
#include <vld.h> // leak detection
|
||||
#endif
|
||||
#include "fileutil.h" // for fexists()
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
DWORD HIDWORD(size_t size) {return size>>32;}
|
||||
DWORD LODWORD(size_t size) {return size&0xFFFFFFFF;}
|
||||
|
||||
std::string ws2s(const std::wstring& wstr)
|
||||
{
|
||||
int size_needed = WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), int(wstr.length() + 1), 0, 0, 0, 0);
|
||||
std::string strTo(size_needed, 0);
|
||||
WideCharToMultiByte(CP_ACP, 0, wstr.c_str(), int(wstr.length() + 1), &strTo[0], size_needed, 0, 0);
|
||||
return strTo;
|
||||
}
|
||||
|
||||
template<class ElemType>
|
||||
size_t LibSVMBinaryReader<ElemType>::RandomizeSweep(size_t mbStartSample)
|
||||
{
|
||||
//size_t randomRangePerEpoch = (m_epochSize+m_randomizeRange-1)/m_randomizeRange;
|
||||
//return m_epoch*randomRangePerEpoch + epochSample/m_randomizeRange;
|
||||
return mbStartSample/m_randomizeRange;
|
||||
}
|
||||
|
||||
// ReadLine - Read a line
|
||||
// readSample - sample to read in global sample space
|
||||
// returns - true if we successfully read a record, otherwise false
|
||||
template<class ElemType>
|
||||
bool LibSVMBinaryReader<ElemType>::ReadRecord(size_t /*readSample*/)
|
||||
{
|
||||
return false; // not used
|
||||
}
|
||||
|
||||
// RecordsToRead - Determine number of records to read to populate record buffers
|
||||
// mbStartSample - the starting sample from which to read
|
||||
// tail - we are checking for possible remainer records to read (default false)
|
||||
// returns - true if we have more to read, false if we hit the end of the dataset
|
||||
template<class ElemType>
|
||||
size_t LibSVMBinaryReader<ElemType>::RecordsToRead(size_t mbStartSample, bool tail)
|
||||
{
|
||||
assert(mbStartSample >= m_epochStartSample);
|
||||
// determine how far ahead we need to read
|
||||
bool randomize = Randomize();
|
||||
// need to read to the end of the next minibatch
|
||||
size_t epochSample = mbStartSample;
|
||||
epochSample %= m_epochSize;
|
||||
|
||||
// determine number left to read for this epoch
|
||||
size_t numberToEpoch = m_epochSize - epochSample;
|
||||
// we will take either a minibatch or the number left in the epoch
|
||||
size_t numberToRead = min(numberToEpoch, m_mbSize);
|
||||
if (numberToRead == 0 && !tail)
|
||||
numberToRead = m_mbSize;
|
||||
|
||||
if (randomize)
|
||||
{
|
||||
size_t randomizeSweep = RandomizeSweep(mbStartSample);
|
||||
// if first read or read takes us to another randomization range
|
||||
// we need to read at least randomization range records
|
||||
if (randomizeSweep != m_randomordering.CurrentSeed()) // the range has changed since last time
|
||||
{
|
||||
numberToRead = RoundUp(epochSample, m_randomizeRange) - epochSample;
|
||||
if (numberToRead == 0 && !tail)
|
||||
numberToRead = m_randomizeRange;
|
||||
}
|
||||
}
|
||||
return numberToRead;
|
||||
}
|
||||
|
||||
template<class ElemType>
|
||||
void LibSVMBinaryReader<ElemType>::WriteLabelFile()
|
||||
{
|
||||
// write out the label file if they don't have one
|
||||
if (!m_labelFileToWrite.empty())
|
||||
{
|
||||
if (m_mapIdToLabel.size() > 0)
|
||||
{
|
||||
File labelFile(m_labelFileToWrite, fileOptionsWrite | fileOptionsText);
|
||||
for (int i=0; i < m_mapIdToLabel.size(); ++i)
|
||||
{
|
||||
labelFile << m_mapIdToLabel[i] << '\n';
|
||||
}
|
||||
fprintf(stderr, "label file %ls written to disk\n", m_labelFileToWrite.c_str());
|
||||
m_labelFileToWrite.clear();
|
||||
}
|
||||
else if (!m_cachingWriter)
|
||||
{
|
||||
fprintf(stderr, "WARNING: file %ls NOT written to disk yet, will be written the first time the end of the entire dataset is found.\n", m_labelFileToWrite.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Destroy - cleanup and remove this class
|
||||
// NOTE: this destroys the object, and it can't be used past this point
|
||||
template<class ElemType>
|
||||
void LibSVMBinaryReader<ElemType>::Destroy()
|
||||
{
|
||||
delete this;
|
||||
}
|
||||
|
||||
// Init - Reader Initialize for multiple data sets
|
||||
// config - [in] configuration parameters for the datareader
|
||||
// Sample format below:
|
||||
//# Parameter values for the reader
|
||||
//reader=[
|
||||
// # reader to use
|
||||
// readerType=LibSVMBinaryReader
|
||||
// miniBatchMode=Partial
|
||||
// randomize=None
|
||||
// features=[
|
||||
// dim=784
|
||||
// start=1
|
||||
// file=c:\speech\mnist\mnist_test.txt
|
||||
// ]
|
||||
// labels=[
|
||||
// dim=1
|
||||
// start=0
|
||||
// file=c:\speech\mnist\mnist_test.txt
|
||||
// labelMappingFile=c:\speech\mnist\labels.txt
|
||||
// labelDim=10
|
||||
// labelType=Category
|
||||
// ]
|
||||
//]
|
||||
template<class ElemType>
|
||||
template<class ConfigRecordType>
|
||||
void LibSVMBinaryReader<ElemType>::InitFromConfig(const ConfigRecordType & readerConfig)
|
||||
{
|
||||
m_labelDim = 2; // maximum label ID we will ever see (used for array dimensions)
|
||||
std::vector<std::wstring> features;
|
||||
std::vector<std::wstring> labels;
|
||||
|
||||
// Determine the names of the features and lables sections in the config file.
|
||||
// features - [in,out] a vector of feature name strings
|
||||
// labels - [in,out] a vector of label name strings
|
||||
// For LibSVMBinary dataset, we only need features. No label is necessary. The following "labels" just serves as a place holder
|
||||
GetFileConfigNames(readerConfig, features, labels);
|
||||
|
||||
// For LibSVMBinary dataset, it must have exactly two features
|
||||
// In the config file, we must specify query features first, then document features. The sequence is different here. Pay attention
|
||||
if (features.size() == 1 && labels.size() == 1)
|
||||
{
|
||||
m_featuresName = features[0];
|
||||
m_labelsName = labels[0];
|
||||
}
|
||||
else
|
||||
{
|
||||
RuntimeError("LibSVMBinary requires exactly one feature and one label. Their names should match those in NDL definition");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
m_mbStartSample = m_epoch = m_totalSamples = m_epochStartSample = 0;
|
||||
m_labelIdMax = m_labelDim = 2;
|
||||
m_partialMinibatch = m_endReached = false;
|
||||
m_labelType = labelCategory;
|
||||
m_readNextSample = 0;
|
||||
m_traceLevel = readerConfig(L"traceLevel", 0);
|
||||
|
||||
if (readerConfig.Exists(L"randomize"))
|
||||
{
|
||||
string randomizeString = readerConfig(L"randomize");
|
||||
if (!_stricmp(randomizeString.c_str(), "none"))
|
||||
{
|
||||
m_randomizeRange = randomizeNone;
|
||||
}
|
||||
else if (!_stricmp(randomizeString.c_str(), "auto"))
|
||||
{
|
||||
m_randomizeRange = randomizeAuto;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_randomizeRange = readerConfig(L"randomize");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_randomizeRange = randomizeNone;
|
||||
}
|
||||
|
||||
std::string minibatchMode(readerConfig(L"minibatchMode", "Partial"));
|
||||
m_partialMinibatch = !_stricmp(minibatchMode.c_str(), "Partial");
|
||||
|
||||
|
||||
// Get the config parameters for query feature and doc feature
|
||||
ConfigParameters configFeatures = readerConfig(m_featuresName, "");
|
||||
|
||||
if (configFeatures.size() == 0)
|
||||
RuntimeError("features file not found, required in configuration: i.e. 'features=[file=c:\\myfile.txt;start=1;dim=123]'");
|
||||
|
||||
// Read in feature size information
|
||||
// This information will be used to handle OOVs
|
||||
m_featuresDim= configFeatures(L"dim");
|
||||
|
||||
std::wstring file = configFeatures("file");
|
||||
|
||||
featuresInput.Init(file, m_featuresDim);
|
||||
|
||||
m_totalSamples = featuresInput.numRows;
|
||||
if (read_order == NULL)
|
||||
{
|
||||
read_order = new int[featuresInput.numBatches];
|
||||
for (int c = 0; c < featuresInput.numBatches; c++)
|
||||
{
|
||||
read_order[c] = c;
|
||||
}
|
||||
}
|
||||
m_mbSize = 0;
|
||||
|
||||
}
|
||||
// destructor - virtual so it gets called properly
|
||||
template<class ElemType>
|
||||
LibSVMBinaryReader<ElemType>::~LibSVMBinaryReader()
|
||||
{
|
||||
ReleaseMemory();
|
||||
}
|
||||
|
||||
// ReleaseMemory - release the memory footprint of LibSVMBinaryReader
|
||||
// used when the caching reader is taking over
|
||||
template<class ElemType>
|
||||
void LibSVMBinaryReader<ElemType>::ReleaseMemory()
|
||||
{
|
||||
if (m_qfeaturesBuffer!=NULL)
|
||||
delete[] m_qfeaturesBuffer;
|
||||
m_qfeaturesBuffer=NULL;
|
||||
if (m_dfeaturesBuffer!=NULL)
|
||||
delete[] m_dfeaturesBuffer;
|
||||
m_dfeaturesBuffer=NULL;
|
||||
if (m_labelsBuffer!=NULL)
|
||||
delete[] m_labelsBuffer;
|
||||
m_labelsBuffer=NULL;
|
||||
if (m_labelsIdBuffer!=NULL)
|
||||
delete[] m_labelsIdBuffer;
|
||||
m_labelsIdBuffer=NULL;
|
||||
m_featureData.clear();
|
||||
m_labelIdData.clear();
|
||||
m_labelData.clear();
|
||||
}
|
||||
|
||||
//SetupEpoch - Setup the proper position in the file, and other variable settings to start a particular epoch
|
||||
template<class ElemType>
|
||||
void LibSVMBinaryReader<ElemType>::SetupEpoch()
|
||||
{
|
||||
}
|
||||
|
||||
// utility function to round an integer up to a multiple of size
|
||||
size_t RoundUp(size_t value, size_t size)
|
||||
{
|
||||
return ((value + size -1)/size)*size;
|
||||
}
|
||||
|
||||
//StartMinibatchLoop - Startup a minibatch loop
|
||||
// mbSize - [in] size of the minibatch (number of Samples, etc.)
|
||||
// epoch - [in] epoch number for this loop, if > 0 the requestedEpochSamples must be specified (unless epoch zero was completed this run)
|
||||
// requestedEpochSamples - [in] number of samples to randomize, defaults to requestDataSize which uses the number of samples there are in the dataset
|
||||
// this value must be a multiple of mbSize, if it is not, it will be rounded up to one.
|
||||
template<class ElemType>
|
||||
void LibSVMBinaryReader<ElemType>::StartMinibatchLoop(size_t mbSize, size_t epoch, size_t requestedEpochSamples)
|
||||
{
|
||||
m_epoch = epoch;
|
||||
size_t mbStartSample = m_epoch * m_epochSize;
|
||||
if (m_totalSamples == 0)
|
||||
{
|
||||
m_totalSamples = featuresInput.numRows;
|
||||
}
|
||||
|
||||
size_t fileRecord = m_totalSamples ? mbStartSample % m_totalSamples : 0;
|
||||
fprintf(stderr, "starting epoch %lld at record count %lld, and file position %lld\n", m_epoch, mbStartSample, fileRecord);
|
||||
//size_t currentFileRecord = m_mbStartSample % m_totalSamples;
|
||||
|
||||
|
||||
|
||||
// reset the next read sample
|
||||
m_processedMinibatches = 0;
|
||||
m_readNextSample = 0;
|
||||
m_epochStartSample = m_mbStartSample = mbStartSample;
|
||||
m_mbSize = mbSize;
|
||||
m_epochSize = requestedEpochSamples;
|
||||
featuresInput.SetupEpoch(mbSize);
|
||||
if (m_epochSize > (size_t)featuresInput.numRows)
|
||||
{
|
||||
m_epochSize = (size_t)featuresInput.numRows;
|
||||
}
|
||||
if (Randomize())
|
||||
{
|
||||
random_shuffle(&read_order[0], &read_order[featuresInput.numBatches]);
|
||||
}
|
||||
m_epoch = epoch;
|
||||
m_mbStartSample = epoch*m_epochSize;
|
||||
|
||||
}
|
||||
|
||||
// function to store the LabelType in an ElemType
|
||||
// required for string labels, which can't be stored in ElemType arrays
|
||||
template<class ElemType>
|
||||
void LibSVMBinaryReader<ElemType>::StoreLabel(ElemType& labelStore, const LabelType& labelValue)
|
||||
{
|
||||
labelStore = (ElemType)m_mapLabelToId[labelValue];
|
||||
}
|
||||
|
||||
// GetMinibatch - Get the next minibatch (features and labels)
|
||||
// matrices - [in] a map with named matrix types (i.e. 'features', 'labels') mapped to the corresponing matrix,
|
||||
// [out] each matrix resized if necessary containing data.
|
||||
// returns - true if there are more minibatches, false if no more minibatchs remain
|
||||
template<class ElemType>
|
||||
bool LibSVMBinaryReader<ElemType>::GetMinibatch(std::map<std::wstring, Matrix<ElemType>*>& matrices)
|
||||
{
|
||||
if (m_processedMinibatches >= featuresInput.numBatches )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// In my unit test example, the input matrices contain 5: N, S, fD, fQ and labels
|
||||
// Both N and S serve as a pre-set constant values, no need to change them
|
||||
// In this node, we only need to fill in these matrices: fD, fQ, labels
|
||||
Matrix<ElemType>& features = *matrices[m_featuresName];
|
||||
Matrix<ElemType>& labels = *matrices[m_labelsName]; // will change this part later.
|
||||
|
||||
size_t actualMBSize = ( m_readNextSample + m_mbSize > m_totalSamples ) ? m_totalSamples - m_readNextSample : m_mbSize;
|
||||
|
||||
|
||||
//features.SwitchToMatrixType(MatrixType::SPARSE, MatrixFormat::matrixFormatSparseCSC);
|
||||
|
||||
/*
|
||||
featuresQ.Resize(dssm_queryInput.numRows, actualMBSize);
|
||||
featuresD.Resize(dssm_docInput.numRows, actualMBSize);
|
||||
*/
|
||||
|
||||
//fprintf(stderr, "featuresQ\n");
|
||||
featuresInput.Next_Batch(features, labels, actualMBSize, read_order[m_processedMinibatches]);
|
||||
//fprintf(stderr, "\n\n\nfeaturesD\n");
|
||||
//fprintf(stderr, "\n\n\n\n\n");
|
||||
m_readNextSample += actualMBSize;
|
||||
m_processedMinibatches++;
|
||||
//fprintf(stderr, "mbs: %d\tsamples: %d\n", m_processedMinibatches, m_readNextSample);
|
||||
/*
|
||||
featuresQ.Print("featuresQ");
|
||||
fprintf(stderr, "\n");
|
||||
featuresD.Print("featuresD");
|
||||
fprintf(stderr, "\n");
|
||||
*/
|
||||
|
||||
/*
|
||||
GPUSPARSE_INDEX_TYPE* h_CSCCol;
|
||||
GPUSPARSE_INDEX_TYPE* h_Row;
|
||||
ElemType* h_val;
|
||||
size_t nz;
|
||||
size_t nrs;
|
||||
size_t ncols;
|
||||
featuresQ.GetMatrixFromCSCFormat(&h_CSCCol, &h_Row, &h_val, &nz, &nrs, &ncols);
|
||||
|
||||
for (int j = 0, k=0; j < nz; j++)
|
||||
{
|
||||
if (h_CSCCol[k] >= j)
|
||||
{
|
||||
fprintf(stderr, "\n");
|
||||
k++;
|
||||
}
|
||||
fprintf(stderr, "%d:%.f ", h_Row[j], h_val[j]);
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
featuresQ.TransferFromDeviceToDevice(featuresQ.GetDeviceId(), -1);
|
||||
featuresQ.SwitchToMatrixType(MatrixType::DENSE, MatrixFormat::matrixFormatDense);
|
||||
featuresQ.Print("featuresQ");
|
||||
|
||||
featuresD.TransferFromDeviceToDevice(featuresD.GetDeviceId(), -1);
|
||||
featuresD.SwitchToMatrixType(MatrixType::DENSE, MatrixFormat::matrixFormatDense);
|
||||
featuresD.Print("featuresD");
|
||||
|
||||
exit(1);
|
||||
*/
|
||||
|
||||
/*
|
||||
if (actualMBSize > m_mbSize || m_labelsBuffer == NULL) {
|
||||
size_t rows = labels.GetNumRows();
|
||||
labels.Resize(rows, actualMBSize);
|
||||
labels.SetValue(0.0);
|
||||
m_labelsBuffer = new ElemType[rows * actualMBSize];
|
||||
memset(m_labelsBuffer, 0, sizeof(ElemType)* rows * actualMBSize);
|
||||
for (int i = 0; i < actualMBSize; i++)
|
||||
{
|
||||
m_labelsBuffer[i * rows] = 1;
|
||||
}
|
||||
labels.SetValue(rows, actualMBSize, m_labelsBuffer, 0, labels.GetDeviceId());
|
||||
|
||||
}
|
||||
*/
|
||||
/*
|
||||
featuresQ.Print("featuresQ");
|
||||
featuresD.Print("featuresD");
|
||||
labels.print("labels");
|
||||
*/
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// GetLabelMapping - Gets the label mapping from integer index to label type
|
||||
// returns - a map from numeric datatype to native label type
|
||||
template<class ElemType>
|
||||
const std::map<typename IDataReader<ElemType>::LabelIdType, typename IDataReader<ElemType>::LabelType>& LibSVMBinaryReader<ElemType>::GetLabelMapping(const std::wstring& sectionName)
|
||||
{
|
||||
if (m_cachingReader)
|
||||
{
|
||||
return m_cachingReader->GetLabelMapping(sectionName);
|
||||
}
|
||||
return m_mapIdToLabel;
|
||||
}
|
||||
|
||||
// SetLabelMapping - Sets the label mapping from integer index to label
|
||||
// labelMapping - mapping table from label values to IDs (must be 0-n)
|
||||
// note: for tasks with labels, the mapping table must be the same between a training run and a testing run
|
||||
template<class ElemType>
|
||||
void LibSVMBinaryReader<ElemType>::SetLabelMapping(const std::wstring& /*sectionName*/, const std::map<typename IDataReader<ElemType>::LabelIdType, typename LabelType>& labelMapping)
|
||||
{
|
||||
if (m_cachingReader)
|
||||
{
|
||||
RuntimeError("Cannot set mapping table when the caching reader is being used");
|
||||
}
|
||||
m_mapIdToLabel = labelMapping;
|
||||
m_mapLabelToId.clear();
|
||||
for (std::pair<unsigned, LabelType> var : labelMapping)
|
||||
{
|
||||
m_mapLabelToId[var.second] = var.first;
|
||||
}
|
||||
}
|
||||
|
||||
template<class ElemType>
|
||||
bool LibSVMBinaryReader<ElemType>::DataEnd(EndDataType endDataType)
|
||||
{
|
||||
bool ret = false;
|
||||
switch (endDataType)
|
||||
{
|
||||
case endDataNull:
|
||||
assert(false);
|
||||
break;
|
||||
case endDataEpoch:
|
||||
//ret = (m_mbStartSample / m_epochSize < m_epoch);
|
||||
//ret = (m_readNextSample >= m_totalSamples);
|
||||
ret = (m_processedMinibatches >= featuresInput.numBatches);
|
||||
break;
|
||||
case endDataSet:
|
||||
//ret = (m_readNextSample >= m_totalSamples);
|
||||
ret = (m_processedMinibatches >= featuresInput.numBatches);
|
||||
break;
|
||||
case endDataSentence: // for fast reader each minibatch is considered a "sentence", so always true
|
||||
ret = true;
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
template<class ElemType>
|
||||
LibSVM_BinaryInput<ElemType>::LibSVM_BinaryInput(){
|
||||
}
|
||||
template<class ElemType>
|
||||
LibSVM_BinaryInput<ElemType>::~LibSVM_BinaryInput(){
|
||||
Dispose();
|
||||
}
|
||||
template<class ElemType>
|
||||
void LibSVM_BinaryInput<ElemType>::Init(wstring fileName, size_t dim)
|
||||
{
|
||||
m_labelDim = 2;
|
||||
m_dim = dim;
|
||||
mbSize = 0;
|
||||
/*
|
||||
m_hndl = CreateFileA(fileName.c_str(), GENERIC_READ,
|
||||
FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
*/
|
||||
m_hndl = CreateFile(fileName.c_str(), GENERIC_READ,
|
||||
FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
|
||||
if (m_hndl == INVALID_HANDLE_VALUE)
|
||||
{
|
||||
char message[256];
|
||||
sprintf_s(message, "Unable to Open/Create file %ls, error %x", fileName.c_str(), GetLastError());
|
||||
RuntimeError(message);
|
||||
}
|
||||
|
||||
m_filemap = CreateFileMapping(m_hndl, NULL, PAGE_READONLY, 0, 0, NULL);
|
||||
|
||||
SYSTEM_INFO sysinfo;
|
||||
GetSystemInfo(&sysinfo);
|
||||
DWORD sysGran = sysinfo.dwAllocationGranularity;
|
||||
|
||||
header_buffer = MapViewOfFile(m_filemap, // handle to map object
|
||||
FILE_MAP_READ, // get correct permissions
|
||||
HIDWORD(0),
|
||||
LODWORD(0),
|
||||
sizeof(int64_t) * 3 + sizeof(int32_t));
|
||||
|
||||
//cout << "After mapviewoffile" << endl;
|
||||
|
||||
memcpy(&numRows, header_buffer, sizeof(int64_t));
|
||||
memcpy(&numBatches, (char*)header_buffer + sizeof(int64_t), sizeof(int64_t));
|
||||
memcpy(&numCols, (char*)header_buffer + 2*sizeof(int64_t), sizeof(int32_t));
|
||||
memcpy(&totalNNz, (char*)header_buffer + 2*sizeof(int64_t)+sizeof(int32_t), sizeof(int64_t));
|
||||
|
||||
//cout << "After gotvalues" << endl;
|
||||
int64_t base_offset = sizeof(int64_t)* 3 + sizeof(int32_t);
|
||||
|
||||
int64_t offsets_padding = base_offset % sysGran;
|
||||
base_offset -= offsets_padding;
|
||||
|
||||
int64_t header_size = numBatches*sizeof(int64_t)+offsets_padding;
|
||||
|
||||
offsets_orig = MapViewOfFile(m_filemap, // handle to map object
|
||||
FILE_MAP_READ, // get correct permissions
|
||||
HIDWORD(base_offset),
|
||||
LODWORD(base_offset),
|
||||
header_size);
|
||||
|
||||
offsets_buffer = (char*)offsets_orig + offsets_padding;
|
||||
|
||||
if (offsets != NULL){
|
||||
free(offsets);
|
||||
}
|
||||
offsets = (int64_t*)malloc(sizeof(int64_t)*numBatches);
|
||||
memcpy(offsets, offsets_buffer, numBatches*sizeof(int64_t));
|
||||
|
||||
|
||||
int64_t header_offset = base_offset + offsets_padding + numBatches * sizeof(int64_t);
|
||||
|
||||
int64_t data_padding = header_offset % sysGran;
|
||||
header_offset -= data_padding;
|
||||
|
||||
data_orig = MapViewOfFile(m_filemap, // handle to map object
|
||||
FILE_MAP_READ, // get correct permissions
|
||||
HIDWORD(header_offset),
|
||||
LODWORD(header_offset),
|
||||
0);
|
||||
data_buffer = (char*)data_orig + data_padding;
|
||||
|
||||
}
|
||||
template<class ElemType>
|
||||
bool LibSVM_BinaryInput<ElemType>::SetupEpoch( size_t minibatchSize){
|
||||
if (values == NULL || mbSize < minibatchSize)
|
||||
{
|
||||
if (values != NULL)
|
||||
{
|
||||
free(values);
|
||||
free(colIndices);
|
||||
free(rowIndices);
|
||||
free(classIndex);
|
||||
free(classWeight);
|
||||
free(m_labelsBuffer);
|
||||
}
|
||||
|
||||
m_labelsBuffer = (ElemType*)malloc(sizeof(ElemType)*m_labelDim*minibatchSize);
|
||||
values = (ElemType*)malloc(sizeof(ElemType)*MAX_BUFFER*minibatchSize);
|
||||
rowIndices = (int32_t*)malloc(sizeof(int32_t)*MAX_BUFFER*minibatchSize);
|
||||
colIndices = (int32_t*)malloc(sizeof(int32_t)*(minibatchSize+1));
|
||||
classIndex = (int32_t*)malloc(sizeof(int32_t)*MAX_BUFFER*minibatchSize);
|
||||
classWeight = (ElemType*)malloc(sizeof(ElemType)*MAX_BUFFER*minibatchSize);
|
||||
//fprintf(stderr, "values size: %d",sizeof(ElemType)*MAX_BUFFER*minibatchSize);
|
||||
//fprintf(stderr, "colindi size: %d",sizeof(int32_t)*MAX_BUFFER*(1+minibatchSize));
|
||||
//fprintf(stderr, "rowindi size: %d",sizeof(int32_t)*MAX_BUFFER*minibatchSize);
|
||||
}
|
||||
if (minibatchSize > mbSize)
|
||||
{
|
||||
mbSize = minibatchSize;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
template<class ElemType>
|
||||
bool LibSVM_BinaryInput<ElemType>::Next_Batch(Matrix<ElemType>& features, Matrix<ElemType>& labels, size_t actualmbsize, int cur_batch){
|
||||
/*
|
||||
int devId = matrices.GetDeviceId();
|
||||
matrices.TransferFromDeviceToDevice(devId, -1);
|
||||
*/
|
||||
|
||||
//int64_t cur_offset = offsets[ordering[cur]];
|
||||
int64_t cur_offset = offsets[cur_batch];
|
||||
//int64_t cur_offset = offsets[ordering[c]];
|
||||
int32_t nnz;
|
||||
|
||||
size_t buffer_offset = cur_offset;
|
||||
|
||||
memcpy(&nnz, (char*)data_buffer + buffer_offset, sizeof(int32_t));
|
||||
buffer_offset += sizeof(int32_t);
|
||||
|
||||
memcpy(values, (char*)data_buffer + buffer_offset, sizeof(ElemType)*nnz);
|
||||
buffer_offset += sizeof(ElemType)*nnz;
|
||||
|
||||
memcpy(rowIndices, (char*)data_buffer + buffer_offset, sizeof(int32_t)*nnz);
|
||||
buffer_offset += sizeof(int32_t)*nnz;
|
||||
|
||||
colIndices[0] = (int32_t)0;
|
||||
memcpy((char*)colIndices + sizeof(int32_t), (char*)data_buffer + buffer_offset, sizeof(int32_t)*actualmbsize);
|
||||
buffer_offset += sizeof(int32_t)*actualmbsize;
|
||||
|
||||
memcpy(classIndex, (char*)data_buffer + buffer_offset, sizeof(int32_t)*actualmbsize);
|
||||
buffer_offset += sizeof(int32_t)*actualmbsize;
|
||||
|
||||
memcpy(classWeight, (char*)data_buffer + buffer_offset, sizeof(ElemType)*actualmbsize);
|
||||
|
||||
/**
|
||||
fprintf(stderr, "%4d (%3d, %6d): ", c, nnz, cur_index + nnz);
|
||||
for (int i = 0; i < nnz; i++)
|
||||
{
|
||||
fprintf(stderr, "%d:%.f ", rowIndices[cur_index+i], values[cur_index+i]);
|
||||
//matrices.SetValue(rowIndices[cur_index + i], c, values[cur_index + i]);
|
||||
}
|
||||
fprintf(stderr, "\n");
|
||||
**/
|
||||
|
||||
/**
|
||||
int col = 0;
|
||||
for (int c = 0; c < nnz; c++)
|
||||
{
|
||||
if (colIndices[col] == c)
|
||||
{
|
||||
fprintf(stderr, "\n%4d: ", col);
|
||||
col++;
|
||||
}
|
||||
fprintf(stderr, "%d:%.lf ", rowIndices[c], values[c]);
|
||||
}
|
||||
**/
|
||||
/*
|
||||
fprintf(stderr, "\nXXXX nnz: %d\n", nnz);
|
||||
fprintf(stderr, "XXXX max values read: %d vs %d\n", sizeof(ElemType)*nnz, sizeof(ElemType)*MAX_BUFFER*actualmbsize);
|
||||
fprintf(stderr, "XXXX max indices read: %d vs %d\n", sizeof(int32_t)*nnz, sizeof(int32_t)*MAX_BUFFER*actualmbsize);
|
||||
*/
|
||||
/*
|
||||
values = (ElemType*)malloc(sizeof(ElemType)*MAX_BUFFER*minibatchSize);
|
||||
colIndices = (int32_t*)malloc(sizeof(int32_t)*MAX_BUFFER*(minibatchSize+1));
|
||||
rowIndices = (int32_t*)malloc(sizeof(int32_t)*MAX_BUFFER*minibatchSize);
|
||||
*/
|
||||
|
||||
features.SetMatrixFromCSCFormat(colIndices, rowIndices, values, nnz, m_dim, actualmbsize);
|
||||
//features.Print("actual values");
|
||||
|
||||
// For Single Class
|
||||
/**/
|
||||
memset(m_labelsBuffer,0,sizeof(ElemType)*m_labelDim*actualmbsize);
|
||||
|
||||
for (int j = 0; j < actualmbsize; j++)
|
||||
{
|
||||
if (classIndex[j] > 0)
|
||||
{
|
||||
m_labelsBuffer[j] = (ElemType)1;
|
||||
}
|
||||
}
|
||||
labels.SetValue(1, actualmbsize, labels.GetDeviceId(), m_labelsBuffer, matrixFlagNormal);
|
||||
/**/
|
||||
|
||||
|
||||
// For Multi Class
|
||||
/**
|
||||
memset(m_labelsBuffer,0,sizeof(ElemType)*m_labelDim*actualmbsize);
|
||||
|
||||
for (int j = 0; j < actualmbsize; j++)
|
||||
{
|
||||
m_labelsBuffer[j*m_labelDim + classIndex[j]] = 1;// classWeight[j];
|
||||
}
|
||||
labels.SetValue(m_labelDim, actualmbsize, m_labelsBuffer, matrixFlagNormal);
|
||||
/**/
|
||||
//exit(1);
|
||||
/*
|
||||
matrices.SwitchToMatrixType(MatrixType::DENSE, MatrixFormat::matrixFormatDense);
|
||||
matrices.Print("featuresQ");
|
||||
exit(1);
|
||||
matrices.TransferFromDeviceToDevice(-1,devId);
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
|
||||
template<class ElemType>
|
||||
void LibSVM_BinaryInput<ElemType>::Dispose(){
|
||||
if (offsets_orig != NULL){
|
||||
UnmapViewOfFile(offsets_orig);
|
||||
}
|
||||
if (data_orig != NULL)
|
||||
{
|
||||
UnmapViewOfFile(data_orig);
|
||||
}
|
||||
|
||||
if (offsets!= NULL)
|
||||
{
|
||||
free(offsets);// = (ElemType*)malloc(sizeof(float)* 230 * 1024);
|
||||
}
|
||||
if (values != NULL)
|
||||
{
|
||||
free(values);// = (ElemType*)malloc(sizeof(float)* 230 * 1024);
|
||||
}
|
||||
if (rowIndices != NULL){
|
||||
free(rowIndices);// = (int*)malloc(sizeof(float)* 230 * 1024);
|
||||
}
|
||||
if (colIndices != NULL){
|
||||
free(colIndices);// = (int*)malloc(sizeof(float)* 230 * 1024);
|
||||
}
|
||||
if (classIndex != NULL){
|
||||
free(classIndex);// = (int*)malloc(sizeof(float)* 230 * 1024);
|
||||
}
|
||||
if (classWeight != NULL){
|
||||
free(classWeight);// = (int*)malloc(sizeof(float)* 230 * 1024);
|
||||
}
|
||||
}
|
||||
|
||||
template<class ElemType>
|
||||
bool LibSVMBinaryReader<ElemType>::GetData(const std::wstring& sectionName, size_t numRecords, void* data, size_t& dataBufferSize, size_t recordStart)
|
||||
{
|
||||
if (m_cachingReader)
|
||||
{
|
||||
return m_cachingReader->GetData(sectionName, numRecords, data, dataBufferSize, recordStart);
|
||||
}
|
||||
RuntimeError("GetData not supported in LibSVMBinaryReader");
|
||||
}
|
||||
// instantiate all the combinations we expect to be used
|
||||
template class LibSVMBinaryReader<double>;
|
||||
template class LibSVMBinaryReader<float>;
|
||||
}}}
|
|
@ -1,159 +0,0 @@
|
|||
//
|
||||
// <copyright file="LibSVMBinaryReader.h" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//
|
||||
// LibSVMBinaryReader.h - Include file for the MTK and MLF format of features and samples
|
||||
#pragma once
|
||||
#include "DataReader.h"
|
||||
#include "DataWriter.h"
|
||||
#include "Config.h"
|
||||
#include "RandomOrdering.h"
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
namespace Microsoft { namespace MSR { namespace CNTK {
|
||||
|
||||
enum LabelKind
|
||||
{
|
||||
labelNone = 0, // no labels to worry about
|
||||
labelCategory = 1, // category labels, creates mapping tables
|
||||
labelRegression = 2, // regression labels
|
||||
labelOther = 3, // some other type of label
|
||||
};
|
||||
|
||||
|
||||
template<class ElemType>
|
||||
class LibSVM_BinaryInput {
|
||||
private:
|
||||
HANDLE m_hndl;
|
||||
HANDLE m_filemap;
|
||||
HANDLE m_header;
|
||||
HANDLE m_offsets;
|
||||
HANDLE m_data;
|
||||
|
||||
//void* header_orig; // Don't need this since the header is at the start of the file
|
||||
void* offsets_orig;
|
||||
void* data_orig;
|
||||
|
||||
void* header_buffer;
|
||||
void* offsets_buffer;
|
||||
void* data_buffer;
|
||||
|
||||
size_t m_dim;
|
||||
size_t mbSize;
|
||||
size_t MAX_BUFFER = 400;
|
||||
size_t m_labelDim;
|
||||
|
||||
ElemType* values; // = (ElemType*)malloc(sizeof(ElemType)* 230 * 1024);
|
||||
int64_t* offsets; // = (int*)malloc(sizeof(int)* 230 * 1024);
|
||||
int32_t* colIndices; // = (int*)malloc(sizeof(int) * (batchsize + 1));
|
||||
int32_t* rowIndices; // = (int*)malloc(sizeof(int) * MAX_BUFFER * batchsize);
|
||||
int32_t* classIndex; // = (int*)malloc(sizeof(int) * batchsize);
|
||||
ElemType* classWeight; // = (ElemType*)malloc(sizeof(ElemType) * batchsize);
|
||||
|
||||
ElemType* m_labelsBuffer;
|
||||
public:
|
||||
int64_t numRows;
|
||||
int64_t numBatches;
|
||||
int32_t numCols;
|
||||
int64_t totalNNz;
|
||||
|
||||
LibSVM_BinaryInput();
|
||||
~LibSVM_BinaryInput();
|
||||
void Init(std::wstring fileName, size_t dim);
|
||||
bool SetupEpoch( size_t minibatchSize);
|
||||
bool Next_Batch(Matrix<ElemType>& features, Matrix<ElemType>& labels, size_t actualmbsize, int batchIndex);
|
||||
void Dispose();
|
||||
};
|
||||
|
||||
template<class ElemType>
|
||||
class LibSVMBinaryReader : public IDataReader<ElemType>
|
||||
{
|
||||
//public:
|
||||
// typedef std::string LabelType;
|
||||
// typedef unsigned LabelIdType;
|
||||
private:
|
||||
int* read_order; // array to shuffle to reorder the dataset
|
||||
std::wstring m_featuresName;
|
||||
size_t m_featuresDim;
|
||||
LibSVM_BinaryInput<ElemType> featuresInput;
|
||||
int64_t m_processedMinibatches;
|
||||
|
||||
size_t m_mbSize; // size of minibatch requested
|
||||
LabelIdType m_labelIdMax; // maximum label ID we have encountered so far
|
||||
LabelIdType m_labelDim; // maximum label ID we will ever see (used for array dimensions)
|
||||
size_t m_mbStartSample; // starting sample # of the next minibatch
|
||||
size_t m_epochSize; // size of an epoch
|
||||
size_t m_epoch; // which epoch are we on
|
||||
size_t m_epochStartSample; // the starting sample for the epoch
|
||||
size_t m_totalSamples; // number of samples in the dataset
|
||||
size_t m_randomizeRange; // randomization range
|
||||
size_t m_featureCount; // feature count
|
||||
size_t m_readNextSample; // next sample to read
|
||||
bool m_labelFirst; // the label is the first element in a line
|
||||
bool m_partialMinibatch; // a partial minibatch is allowed
|
||||
LabelKind m_labelType; // labels are categories, create mapping table
|
||||
RandomOrdering m_randomordering; // randomizing class
|
||||
MBLayoutPtr m_pMBLayout;
|
||||
|
||||
std::wstring m_labelsName;
|
||||
std::wstring m_labelsCategoryName;
|
||||
std::wstring m_labelsMapName;
|
||||
ElemType* m_qfeaturesBuffer;
|
||||
ElemType* m_dfeaturesBuffer;
|
||||
ElemType* m_labelsBuffer;
|
||||
LabelIdType* m_labelsIdBuffer;
|
||||
std::wstring m_labelFileToWrite; // set to the path if we need to write out the label file
|
||||
|
||||
bool m_endReached;
|
||||
int m_traceLevel;
|
||||
|
||||
// feature and label data are parallel arrays
|
||||
std::vector<ElemType> m_featureData;
|
||||
std::vector<LabelIdType> m_labelIdData;
|
||||
std::vector<LabelType> m_labelData;
|
||||
|
||||
// map is from ElemType to LabelType
|
||||
// For LibSVMBinary, we really only need an int for label data, but we have to transmit in Matrix, so use ElemType instead
|
||||
std::map<LabelIdType, LabelType> m_mapIdToLabel;
|
||||
std::map<LabelType, LabelIdType> m_mapLabelToId;
|
||||
|
||||
// caching support
|
||||
DataReader<ElemType>* m_cachingReader;
|
||||
DataWriter<ElemType>* m_cachingWriter;
|
||||
ConfigParameters m_readerConfig;
|
||||
|
||||
size_t RandomizeSweep(size_t epochSample);
|
||||
//bool Randomize() {return m_randomizeRange != randomizeNone;}
|
||||
bool Randomize() { return false; }
|
||||
void SetupEpoch();
|
||||
void StoreLabel(ElemType& labelStore, const LabelType& labelValue);
|
||||
size_t RecordsToRead(size_t mbStartSample, bool tail=false);
|
||||
void ReleaseMemory();
|
||||
void WriteLabelFile();
|
||||
|
||||
|
||||
virtual bool ReadRecord(size_t readSample);
|
||||
public:
|
||||
template<class ConfigRecordType> void InitFromConfig(const ConfigRecordType &);
|
||||
virtual void Init(const ConfigParameters & config) override { InitFromConfig(config); }
|
||||
virtual void Init(const ScriptableObjects::IConfigRecord & config) override { InitFromConfig(config); }
|
||||
virtual void Destroy();
|
||||
LibSVMBinaryReader() : m_pMBLayout(make_shared<MBLayout>()) { m_qfeaturesBuffer = NULL; m_dfeaturesBuffer = NULL; m_labelsBuffer = NULL; }
|
||||
virtual ~LibSVMBinaryReader();
|
||||
virtual void StartMinibatchLoop(size_t mbSize, size_t epoch, size_t requestedEpochSamples=requestDataSize);
|
||||
virtual bool GetMinibatch(std::map<std::wstring, Matrix<ElemType>*>& matrices);
|
||||
|
||||
size_t GetNumParallelSequences() { return 1; }
|
||||
void SetNumParallelSequences(const size_t) { };
|
||||
void CopyMBLayoutTo(MBLayoutPtr pMBLayout) { pMBLayout->CopyFrom(m_pMBLayout); NOT_IMPLEMENTED; }
|
||||
virtual const std::map<LabelIdType, LabelType>& GetLabelMapping(const std::wstring& sectionName);
|
||||
virtual void SetLabelMapping(const std::wstring& sectionName, const std::map<LabelIdType, typename LabelType>& labelMapping);
|
||||
virtual bool GetData(const std::wstring& sectionName, size_t numRecords, void* data, size_t& dataBufferSize, size_t recordStart=0);
|
||||
|
||||
virtual bool DataEnd(EndDataType endDataType);
|
||||
void SetRandomSeed(int) { NOT_IMPLEMENTED; }
|
||||
};
|
||||
}}}
|
|
@ -1,56 +0,0 @@
|
|||
$ grep -a --text Finish gpulstmlm_train_test.log | grep Train
|
||||
Finished Epoch[1]: [Training Set] Train Loss Per Sample = 6.0689292 EvalErr Per Sample = 6.0689292 Ave Learn Rate Per Sample = 0.009999999776 Epoch Time=501.42099
|
||||
Finished Epoch[1]: [Validation Set] Train Loss Per Sample = 5.7789721 EvalErr Per Sample = 5.7789721
|
||||
Finished Epoch[2]: [Training Set] Train Loss Per Sample = 5.6369767 EvalErr Per Sample = 5.6369767 Ave Learn Rate Per Sample = 0.009999999776 Epoch Time=501.62399
|
||||
Finished Epoch[2]: [Validation Set] Train Loss Per Sample = 5.5511756 EvalErr Per Sample = 5.5511756
|
||||
Finished Epoch[3]: [Training Set] Train Loss Per Sample = 5.4327216 EvalErr Per Sample = 5.4327216 Ave Learn Rate Per Sample = 0.009999999776 Epoch Time=501.52399
|
||||
Finished Epoch[3]: [Validation Set] Train Loss Per Sample = 5.4396544 EvalErr Per Sample = 5.4396544
|
||||
Finished Epoch[4]: [Training Set] Train Loss Per Sample = 5.2914305 EvalErr Per Sample = 5.2914305 Ave Learn Rate Per Sample = 0.009999999776 Epoch Time=503.44199
|
||||
Finished Epoch[4]: [Validation Set] Train Loss Per Sample = 5.345387 EvalErr Per Sample = 5.345387
|
||||
Finished Epoch[5]: [Training Set] Train Loss Per Sample = 5.1821184 EvalErr Per Sample = 5.1821184 Ave Learn Rate Per Sample = 0.009999999776 Epoch Time=508.905
|
||||
Finished Epoch[5]: [Validation Set] Train Loss Per Sample = 5.2927375 EvalErr Per Sample = 5.2927375
|
||||
Finished Epoch[6]: [Training Set] Train Loss Per Sample = 5.0916734 EvalErr Per Sample = 5.0916734 Ave Learn Rate Per Sample = 0.009999999776 Epoch Time=522.10303
|
||||
Finished Epoch[6]: [Validation Set] Train Loss Per Sample = 5.2429872 EvalErr Per Sample = 5.2429872
|
||||
Finished Epoch[7]: [Training Set] Train Loss Per Sample = 5.0149188 EvalErr Per Sample = 5.0149188 Ave Learn Rate Per Sample = 0.009999999776 Epoch Time=526.94702
|
||||
Finished Epoch[7]: [Validation Set] Train Loss Per Sample = 5.1904435 EvalErr Per Sample = 5.1904435
|
||||
Finished Epoch[8]: [Training Set] Train Loss Per Sample = 4.9472914 EvalErr Per Sample = 4.9472914 Ave Learn Rate Per Sample = 0.009999999776 Epoch Time=544.46198
|
||||
Finished Epoch[8]: [Validation Set] Train Loss Per Sample = 5.1749911 EvalErr Per Sample = 5.1749911
|
||||
Finished Epoch[9]: [Training Set] Train Loss Per Sample = 4.8864255 EvalErr Per Sample = 4.8864255 Ave Learn Rate Per Sample = 0.009999999776 Epoch Time=531.33002
|
||||
Finished Epoch[9]: [Validation Set] Train Loss Per Sample = 5.1553888 EvalErr Per Sample = 5.1553888
|
||||
Finished Epoch[10]: [Training Set] Train Loss Per Sample = 4.831315 EvalErr Per Sample = 4.831315 Ave Learn Rate Per Sample = 0.009999999776 Epoch Time=523.29999
|
||||
Finished Epoch[10]: [Validation Set] Train Loss Per Sample = 5.1265602 EvalErr Per Sample = 5.1265602
|
||||
Finished Epoch[11]: [Training Set] Train Loss Per Sample = 4.7812014 EvalErr Per Sample = 4.7812014 Ave Learn Rate Per Sample = 0.009999999776 Epoch Time=521.64697
|
||||
Finished Epoch[11]: [Validation Set] Train Loss Per Sample = 5.1217532 EvalErr Per Sample = 5.1217532
|
||||
Finished Epoch[12]: [Training Set] Train Loss Per Sample = 4.6650786 EvalErr Per Sample = 4.6650786 Ave Learn Rate Per Sample = 0.004999999888 Epoch Time=523.90198
|
||||
Finished Epoch[12]: [Validation Set] Train Loss Per Sample = 5.0993018 EvalErr Per Sample = 5.0993018
|
||||
Finished Epoch[13]: [Training Set] Train Loss Per Sample = 4.5911136 EvalErr Per Sample = 4.5911136 Ave Learn Rate Per Sample = 0.002499999944 Epoch Time=520.66101
|
||||
Finished Epoch[13]: [Validation Set] Train Loss Per Sample = 5.0787692 EvalErr Per Sample = 5.0787692
|
||||
Finished Epoch[14]: [Training Set] Train Loss Per Sample = 4.5472517 EvalErr Per Sample = 4.5472517 Ave Learn Rate Per Sample = 0.001249999972 Epoch Time=517.742
|
||||
Finished Epoch[14]: [Validation Set] Train Loss Per Sample = 5.0703268 EvalErr Per Sample = 5.0703268
|
||||
Finished Epoch[15]: [Training Set] Train Loss Per Sample = 4.5230498 EvalErr Per Sample = 4.5230498 Ave Learn Rate Per Sample = 0.000624999986 Epoch Time=516.28998
|
||||
Finished Epoch[15]: [Validation Set] Train Loss Per Sample = 5.0566416 EvalErr Per Sample = 5.0566416
|
||||
Finished Epoch[16]: [Training Set] Train Loss Per Sample = 4.510385 EvalErr Per Sample = 4.510385 Ave Learn Rate Per Sample = 0.000312499993 Epoch Time=513.30499
|
||||
Finished Epoch[16]: [Validation Set] Train Loss Per Sample = 5.0524426 EvalErr Per Sample = 5.0524426
|
||||
|
||||
$ grep -a --text Finish gpulstmlm_train_test.log | grep Validation
|
||||
Finished Epoch[1]: [Validation Set] Train Loss Per Sample = 5.7789721 EvalErr Per Sample = 5.7789721
|
||||
Finished Epoch[2]: [Validation Set] Train Loss Per Sample = 5.5511756 EvalErr Per Sample = 5.5511756
|
||||
Finished Epoch[3]: [Validation Set] Train Loss Per Sample = 5.4396544 EvalErr Per Sample = 5.4396544
|
||||
Finished Epoch[4]: [Validation Set] Train Loss Per Sample = 5.345387 EvalErr Per Sample = 5.345387
|
||||
Finished Epoch[5]: [Validation Set] Train Loss Per Sample = 5.2927375 EvalErr Per Sample = 5.2927375
|
||||
Finished Epoch[6]: [Validation Set] Train Loss Per Sample = 5.2429872 EvalErr Per Sample = 5.2429872
|
||||
Finished Epoch[7]: [Validation Set] Train Loss Per Sample = 5.1904435 EvalErr Per Sample = 5.1904435
|
||||
Finished Epoch[8]: [Validation Set] Train Loss Per Sample = 5.1749911 EvalErr Per Sample = 5.1749911
|
||||
Finished Epoch[9]: [Validation Set] Train Loss Per Sample = 5.1553888 EvalErr Per Sample = 5.1553888
|
||||
Finished Epoch[10]: [Validation Set] Train Loss Per Sample = 5.1265602 EvalErr Per Sample = 5.1265602
|
||||
Finished Epoch[11]: [Validation Set] Train Loss Per Sample = 5.1217532 EvalErr Per Sample = 5.1217532
|
||||
Finished Epoch[12]: [Validation Set] Train Loss Per Sample = 5.0993018 EvalErr Per Sample = 5.0993018
|
||||
Finished Epoch[13]: [Validation Set] Train Loss Per Sample = 5.0787692 EvalErr Per Sample = 5.0787692
|
||||
Finished Epoch[14]: [Validation Set] Train Loss Per Sample = 5.0703268 EvalErr Per Sample = 5.0703268
|
||||
Finished Epoch[15]: [Validation Set] Train Loss Per Sample = 5.0566416 EvalErr Per Sample = 5.0566416
|
||||
Finished Epoch[16]: [Validation Set] Train Loss Per Sample = 5.0524426 EvalErr Per Sample = 5.0524426
|
||||
|
||||
|
||||
# test
|
||||
Final Results: Minibatch[1-82430]: Samples Seen = 82430 TrainNodeClassBasedCrossEntropy/Sample = 4.9702353 TrainNodeClassBasedCrossEntropy/Sample = 4.9702353
|
||||
corresponding PPL = 144
|
|
@ -1,7 +0,0 @@
|
|||
ExpDir=d:\temp\lstm
|
||||
ConfigDir=D:\zhaoyg\2015-5-6\cntk\ExampleSetups\LM\LSTMLM\
|
||||
DataDir=\\speechstore5\transient\kaishengy\data\lm\PennTreeBank
|
||||
|
||||
|
||||
# to run this
|
||||
# ..\..\..\x64\debug\cntk.exe configFile=global.config+lstmlm.gpu.config ExpDir=d:\temp\lm\ptb
|
|
@ -1,432 +0,0 @@
|
|||
# configuration file for class based RNN training
|
||||
# final test PPL=122.54
|
||||
ExpFolder=$ExpDir$
|
||||
ConfigFolder=$ConfigDir$
|
||||
DataFolder=$DataDir$
|
||||
|
||||
stderr=$ExpFolder$
|
||||
numCPUThreads=4
|
||||
# command=dumpNodeInfo
|
||||
#command=train
|
||||
#command=test
|
||||
command=writeWordAndClassInfo:train:test
|
||||
command=train:test
|
||||
type=double
|
||||
|
||||
DEVICEID=-1
|
||||
|
||||
NOISE=100
|
||||
RATE=0.1
|
||||
VOCABSIZE=10000
|
||||
CLASSSIZE=50
|
||||
makeMode=true
|
||||
TRAINFILE=ptb.train.cntk.txt
|
||||
VALIDFILE=ptb.valid.cntk.txt
|
||||
TESTFILE=ptb.test.cntk.txt
|
||||
|
||||
#number of threads
|
||||
nthreads=4
|
||||
|
||||
writeWordAndClassInfo=[
|
||||
action=writeWordAndClass
|
||||
inputFile=$DataFolder$\$TRAINFILE$
|
||||
outputVocabFile=$DataFolder$\vocab.txt
|
||||
outputWord2Cls=$ExpFolder$\word2cls.txt
|
||||
outputCls2Index=$ExpFolder$\cls2idx.txt
|
||||
vocabSize=$VOCABSIZE$
|
||||
cutoff=0
|
||||
printValues=true
|
||||
]
|
||||
|
||||
dumpNodeInfo=[
|
||||
action=dumpnode
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
#nodeName=W0
|
||||
printValues=true
|
||||
]
|
||||
|
||||
devtest=[action=devtest]
|
||||
|
||||
train=[
|
||||
action=train
|
||||
minibatchSize=10
|
||||
traceLevel=1
|
||||
deviceId=$DEVICEID$
|
||||
epochSize=4430000
|
||||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=NCELSTM
|
||||
#CLASSLSTM
|
||||
|
||||
# uncomment below and comment SimpleNetworkBuilder section to use NDL to train RNN LM
|
||||
# NDLNetworkBuilder=[
|
||||
# networkDescription=$ConfigFolder$\rnnlm.ndl
|
||||
# ]
|
||||
|
||||
SimpleNetworkBuilder=[
|
||||
trainingCriterion=NoiseContrastiveEstimationNode
|
||||
evalCriterion=NoiseContrastiveEstimationNode
|
||||
nodeType=Sigmoid
|
||||
initValueScale=6.0
|
||||
layerSizes=$VOCABSIZE$:200:$VOCABSIZE$
|
||||
addPrior=false
|
||||
addDropoutNodes=false
|
||||
applyMeanVarNorm=false
|
||||
uniformInit=true;
|
||||
|
||||
# these are for the class information for class-based language modeling
|
||||
vocabSize=$VOCABSIZE$
|
||||
#nbrClass=$CLASSSIZE$
|
||||
noise_number=$NOISE$
|
||||
]
|
||||
|
||||
# configuration file, base parameters
|
||||
SGD=[
|
||||
makeMode=true
|
||||
learningRatesPerSample=$RATE$
|
||||
momentumPerMB=0
|
||||
gradientClippingWithTruncation=true
|
||||
clippingThresholdPerSample=15.0
|
||||
maxEpochs=40
|
||||
unroll=false
|
||||
numMBsToShowResult=2000
|
||||
# gradUpdateType=AdaGrad
|
||||
gradUpdateType=None
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
loadBestModel=true
|
||||
|
||||
# settings for Auto Adjust Learning Rate
|
||||
AutoAdjust=[
|
||||
# auto learning rate adjustment
|
||||
autoAdjustLR=adjustafterepoch
|
||||
reduceLearnRateIfImproveLessThan=0.001
|
||||
continueReduce=false
|
||||
increaseLearnRateIfImproveMoreThan=1000000000
|
||||
learnRateDecreaseFactor=0.5
|
||||
learnRateIncreaseFactor=1.382
|
||||
numMiniBatch4LRSearch=100
|
||||
numPrevLearnRates=5
|
||||
numBestSearchEpoch=1
|
||||
]
|
||||
|
||||
dropoutRate=0.0
|
||||
]
|
||||
|
||||
reader=[
|
||||
readerType=LMSequenceReader
|
||||
randomize=None
|
||||
nbruttsineachrecurrentiter=10
|
||||
|
||||
# word class info
|
||||
wordclass=$DataFolder$\vocab.txt
|
||||
noise_number=$NOISE$
|
||||
mode=nce
|
||||
# if writerType is set, we will cache to a binary file
|
||||
# if the binary file exists, we will use it instead of parsing this file
|
||||
# writerType=BinaryReader
|
||||
|
||||
#### write definition
|
||||
wfile=$ExpFolder$\sequenceSentence.bin
|
||||
#wsize - inital size of the file in MB
|
||||
# if calculated size would be bigger, that is used instead
|
||||
wsize=256
|
||||
|
||||
#wrecords - number of records we should allocate space for in the file
|
||||
# files cannot be expanded, so this should be large enough. If known modify this element in config before creating file
|
||||
wrecords=1000
|
||||
#windowSize - number of records we should include in BinaryWriter window
|
||||
windowSize=$VOCABSIZE$
|
||||
|
||||
file=$DataFolder$\$TRAINFILE$
|
||||
|
||||
#additional features sections
|
||||
#for now store as expanded category data (including label in)
|
||||
features=[
|
||||
# sentence has no features, so need to set dimension to zero
|
||||
dim=0
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
# sequence break table, list indexes into sequence records, so we know when a sequence starts/stops
|
||||
sequence=[
|
||||
dim=1
|
||||
wrecords=2
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
#labels sections
|
||||
labelIn=[
|
||||
dim=1
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.txt
|
||||
labelType=Category
|
||||
beginSequence="</s>"
|
||||
endSequence="</s>"
|
||||
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=11
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=11
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
#labels sections
|
||||
labels=[
|
||||
dim=1
|
||||
labelType=NextWord
|
||||
beginSequence="O"
|
||||
endSequence="O"
|
||||
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.out.txt
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=3
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=3
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
cvReader=[
|
||||
# reader to use
|
||||
readerType=LMSequenceReader
|
||||
randomize=None
|
||||
mode=softmax
|
||||
# word class info
|
||||
wordclass=$DataFolder$\vocab.txt
|
||||
|
||||
# if writerType is set, we will cache to a binary file
|
||||
# if the binary file exists, we will use it instead of parsing this file
|
||||
# writerType=BinaryReader
|
||||
|
||||
#### write definition
|
||||
wfile=$ExpFolder$\sequenceSentence.valid.bin
|
||||
#wsize - inital size of the file in MB
|
||||
# if calculated size would be bigger, that is used instead
|
||||
wsize=256
|
||||
|
||||
#wrecords - number of records we should allocate space for in the file
|
||||
# files cannot be expanded, so this should be large enough. If known modify this element in config before creating file
|
||||
wrecords=1000
|
||||
#windowSize - number of records we should include in BinaryWriter window
|
||||
windowSize=$VOCABSIZE$
|
||||
|
||||
file=$DataFolder$\$VALIDFILE$
|
||||
|
||||
#additional features sections
|
||||
#for now store as expanded category data (including label in)
|
||||
features=[
|
||||
# sentence has no features, so need to set dimension to zero
|
||||
dim=0
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
# sequence break table, list indexes into sequence records, so we know when a sequence starts/stops
|
||||
sequence=[
|
||||
dim=1
|
||||
wrecords=2
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
#labels sections
|
||||
# it should be the same as that in the training set
|
||||
labelIn=[
|
||||
dim=1
|
||||
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.out.txt
|
||||
labelType=Category
|
||||
beginSequence="</s>"
|
||||
endSequence="</s>"
|
||||
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=11
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=11
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
#labels sections
|
||||
labels=[
|
||||
dim=1
|
||||
labelType=NextWord
|
||||
beginSequence="O"
|
||||
endSequence="O"
|
||||
|
||||
labelDim=$VOCABSIZE$
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.out.txt
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=3
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=3
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
test=[
|
||||
action=eval
|
||||
|
||||
# correspond to the number of words/characteres to train in a minibatch
|
||||
minibatchSize=1
|
||||
# need to be small since models are updated for each minibatch
|
||||
traceLevel=1
|
||||
deviceId=$DEVICEID$
|
||||
epochSize=4430000
|
||||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=NCELSTM
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=LMSequenceReader
|
||||
randomize=None
|
||||
mode=softmax
|
||||
# word class info
|
||||
wordclass=$DataFolder$\vocab.txt
|
||||
|
||||
# if writerType is set, we will cache to a binary file
|
||||
# if the binary file exists, we will use it instead of parsing this file
|
||||
# writerType=BinaryReader
|
||||
|
||||
#### write definition
|
||||
wfile=$ExpFolder$\sequenceSentence.bin
|
||||
#wsize - inital size of the file in MB
|
||||
# if calculated size would be bigger, that is used instead
|
||||
wsize=256
|
||||
|
||||
# wrecords - number of records we should allocate space for in the file
|
||||
# files cannot be expanded, so this should be large enough. If known modify this element in config before creating file
|
||||
wrecords=1000
|
||||
# windowSize - number of records we should include in BinaryWriter window
|
||||
windowSize=$VOCABSIZE$
|
||||
|
||||
file=$DataFolder$\$TESTFILE$
|
||||
|
||||
#additional features sections
|
||||
#for now store as expanded category data (including label in)
|
||||
features=[
|
||||
# sentence has no features, so need to set dimension to zero
|
||||
dim=0
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
# sequence break table, list indexes into sequence records, so we know when a sequence starts/stops
|
||||
sequence=[
|
||||
dim=1
|
||||
wrecords=2
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
#labels sections
|
||||
labelIn=[
|
||||
dim=1
|
||||
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.txt
|
||||
labelType=Category
|
||||
beginSequence="</s>"
|
||||
endSequence="</s>"
|
||||
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=11
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=11
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
#labels sections
|
||||
labels=[
|
||||
dim=1
|
||||
labelType=NextWord
|
||||
beginSequence="O"
|
||||
endSequence="O"
|
||||
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.out.txt
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=3
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=3
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
|
@ -1,425 +0,0 @@
|
|||
# configuration file for class based RNN training
|
||||
# ppl=133.35
|
||||
ExpFolder=$ExpDir$
|
||||
ConfigFolder=$ConfigDir$
|
||||
DataFolder=$DataDir$
|
||||
|
||||
stderr=$ExpFolder$
|
||||
|
||||
# command=dumpNodeInfo
|
||||
#command=train
|
||||
#command=test
|
||||
command=writeWordAndClassInfo:train:test
|
||||
#command=writeWordAndClassInfo
|
||||
type=double
|
||||
|
||||
DEVICEID=Auto
|
||||
numCPUThreads=4
|
||||
|
||||
VOCABSIZE=10000
|
||||
CLASSSIZE=50
|
||||
|
||||
TRAINFILE=ptb.train.cntk.txt
|
||||
VALIDFILE=ptb.valid.cntk.txt
|
||||
TESTFILE=ptb.test.cntk.txt
|
||||
|
||||
writeWordAndClassInfo=[
|
||||
action=writeWordAndClass
|
||||
inputFile=$DataFolder$\$TRAINFILE$
|
||||
outputVocabFile=$ExpFolder$\vocab.txt
|
||||
outputWord2Cls=$ExpFolder$\word2cls.txt
|
||||
outputCls2Index=$ExpFolder$\cls2idx.txt
|
||||
vocabSize=$VOCABSIZE$
|
||||
nbrClass=$CLASSSIZE$
|
||||
cutoff=0
|
||||
printValues=true
|
||||
]
|
||||
|
||||
dumpNodeInfo=[
|
||||
action=dumpnode
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
#nodeName=W0
|
||||
printValues=true
|
||||
]
|
||||
|
||||
devtest=[action=devtest]
|
||||
|
||||
train=[
|
||||
action=train
|
||||
minibatchSize=10
|
||||
traceLevel=1
|
||||
deviceId=$DEVICEID$
|
||||
epochSize=4430000
|
||||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLSTM
|
||||
|
||||
# uncomment below and comment SimpleNetworkBuilder section to use NDL to train RNN LM
|
||||
# NDLNetworkBuilder=[
|
||||
# networkDescription=$ConfigFolder$\rnnlm.ndl
|
||||
# ]
|
||||
|
||||
SimpleNetworkBuilder=[
|
||||
trainingCriterion=classcrossentropywithsoftmax
|
||||
evalCriterion=classcrossentropywithsoftmax
|
||||
nodeType=Sigmoid
|
||||
initValueScale=6.0
|
||||
layerSizes=$VOCABSIZE$:150:200:$VOCABSIZE$
|
||||
addPrior=false
|
||||
addDropoutNodes=false
|
||||
applyMeanVarNorm=false
|
||||
uniformInit=true;
|
||||
lookupTableOrder=1
|
||||
# these are for the class information for class-based language modeling
|
||||
vocabSize=$VOCABSIZE$
|
||||
nbrClass=$CLASSSIZE$
|
||||
]
|
||||
|
||||
# configuration file, base parameters
|
||||
SGD=[
|
||||
learningRatesPerSample=0.1
|
||||
momentumPerMB=0
|
||||
gradientClippingWithTruncation=true
|
||||
clippingThresholdPerSample=15.0
|
||||
maxEpochs=40
|
||||
unroll=false
|
||||
numMBsToShowResult=2000
|
||||
# gradUpdateType=AdaGrad
|
||||
gradUpdateType=None
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
loadBestModel=true
|
||||
|
||||
# settings for Auto Adjust Learning Rate
|
||||
AutoAdjust=[
|
||||
# auto learning rate adjustment
|
||||
autoAdjustLR=adjustafterepoch
|
||||
reduceLearnRateIfImproveLessThan=0.001
|
||||
continueReduce=false
|
||||
increaseLearnRateIfImproveMoreThan=1000000000
|
||||
learnRateDecreaseFactor=0.5
|
||||
learnRateIncreaseFactor=1.382
|
||||
numMiniBatch4LRSearch=100
|
||||
numPrevLearnRates=5
|
||||
numBestSearchEpoch=1
|
||||
]
|
||||
|
||||
dropoutRate=0.0
|
||||
]
|
||||
|
||||
reader=[
|
||||
readerType=LMSequenceReader
|
||||
randomize=None
|
||||
nbruttsineachrecurrentiter=10
|
||||
|
||||
# word class info
|
||||
wordclass=$ExpFolder$\vocab.txt
|
||||
|
||||
# if writerType is set, we will cache to a binary file
|
||||
# if the binary file exists, we will use it instead of parsing this file
|
||||
# writerType=BinaryReader
|
||||
|
||||
#### write definition
|
||||
wfile=$ExpFolder$\sequenceSentence.bin
|
||||
#wsize - inital size of the file in MB
|
||||
# if calculated size would be bigger, that is used instead
|
||||
wsize=256
|
||||
|
||||
#wrecords - number of records we should allocate space for in the file
|
||||
# files cannot be expanded, so this should be large enough. If known modify this element in config before creating file
|
||||
wrecords=1000
|
||||
#windowSize - number of records we should include in BinaryWriter window
|
||||
windowSize=$VOCABSIZE$
|
||||
|
||||
file=$DataFolder$\$TRAINFILE$
|
||||
|
||||
#additional features sections
|
||||
#for now store as expanded category data (including label in)
|
||||
features=[
|
||||
# sentence has no features, so need to set dimension to zero
|
||||
dim=0
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
# sequence break table, list indexes into sequence records, so we know when a sequence starts/stops
|
||||
sequence=[
|
||||
dim=1
|
||||
wrecords=2
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
#labels sections
|
||||
labelIn=[
|
||||
dim=1
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.txt
|
||||
labelType=Category
|
||||
beginSequence="</s>"
|
||||
endSequence="</s>"
|
||||
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=11
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=11
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
#labels sections
|
||||
labels=[
|
||||
dim=1
|
||||
labelType=NextWord
|
||||
beginSequence="O"
|
||||
endSequence="O"
|
||||
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.out.txt
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=3
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=3
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
cvReader=[
|
||||
# reader to use
|
||||
readerType=LMSequenceReader
|
||||
randomize=None
|
||||
|
||||
# word class info
|
||||
wordclass=$ExpFolder$\vocab.txt
|
||||
|
||||
# if writerType is set, we will cache to a binary file
|
||||
# if the binary file exists, we will use it instead of parsing this file
|
||||
# writerType=BinaryReader
|
||||
|
||||
#### write definition
|
||||
wfile=$ExpFolder$\sequenceSentence.valid.bin
|
||||
#wsize - inital size of the file in MB
|
||||
# if calculated size would be bigger, that is used instead
|
||||
wsize=256
|
||||
|
||||
#wrecords - number of records we should allocate space for in the file
|
||||
# files cannot be expanded, so this should be large enough. If known modify this element in config before creating file
|
||||
wrecords=1000
|
||||
#windowSize - number of records we should include in BinaryWriter window
|
||||
windowSize=$VOCABSIZE$
|
||||
|
||||
file=$DataFolder$\$VALIDFILE$
|
||||
|
||||
#additional features sections
|
||||
#for now store as expanded category data (including label in)
|
||||
features=[
|
||||
# sentence has no features, so need to set dimension to zero
|
||||
dim=0
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
# sequence break table, list indexes into sequence records, so we know when a sequence starts/stops
|
||||
sequence=[
|
||||
dim=1
|
||||
wrecords=2
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
#labels sections
|
||||
# it should be the same as that in the training set
|
||||
labelIn=[
|
||||
dim=1
|
||||
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.out.txt
|
||||
labelType=Category
|
||||
beginSequence="</s>"
|
||||
endSequence="</s>"
|
||||
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=11
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=11
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
#labels sections
|
||||
labels=[
|
||||
dim=1
|
||||
labelType=NextWord
|
||||
beginSequence="O"
|
||||
endSequence="O"
|
||||
|
||||
labelDim=$VOCABSIZE$
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.out.txt
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=3
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=3
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
test=[
|
||||
action=eval
|
||||
|
||||
# correspond to the number of words/characteres to train in a minibatch
|
||||
minibatchSize=1
|
||||
# need to be small since models are updated for each minibatch
|
||||
traceLevel=1
|
||||
deviceId=$DEVICEID$
|
||||
epochSize=4430000
|
||||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=LMSequenceReader
|
||||
randomize=None
|
||||
|
||||
# word class info
|
||||
wordclass=$ExpFolder$\vocab.txt
|
||||
|
||||
# if writerType is set, we will cache to a binary file
|
||||
# if the binary file exists, we will use it instead of parsing this file
|
||||
# writerType=BinaryReader
|
||||
|
||||
#### write definition
|
||||
wfile=$ExpFolder$\sequenceSentence.bin
|
||||
#wsize - inital size of the file in MB
|
||||
# if calculated size would be bigger, that is used instead
|
||||
wsize=256
|
||||
|
||||
# wrecords - number of records we should allocate space for in the file
|
||||
# files cannot be expanded, so this should be large enough. If known modify this element in config before creating file
|
||||
wrecords=1000
|
||||
# windowSize - number of records we should include in BinaryWriter window
|
||||
windowSize=$VOCABSIZE$
|
||||
|
||||
file=$DataFolder$\$TESTFILE$
|
||||
|
||||
#additional features sections
|
||||
#for now store as expanded category data (including label in)
|
||||
features=[
|
||||
# sentence has no features, so need to set dimension to zero
|
||||
dim=0
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
# sequence break table, list indexes into sequence records, so we know when a sequence starts/stops
|
||||
sequence=[
|
||||
dim=1
|
||||
wrecords=2
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
#labels sections
|
||||
labelIn=[
|
||||
dim=1
|
||||
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.txt
|
||||
labelType=Category
|
||||
beginSequence="</s>"
|
||||
endSequence="</s>"
|
||||
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=11
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=11
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
#labels sections
|
||||
labels=[
|
||||
dim=1
|
||||
labelType=NextWord
|
||||
beginSequence="O"
|
||||
endSequence="O"
|
||||
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.out.txt
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=3
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=3
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
|
@ -1,432 +0,0 @@
|
|||
# configuration file for class based RNN training
|
||||
# final test PPL=122.54
|
||||
ExpFolder=$ExpDir$
|
||||
ConfigFolder=$ConfigDir$
|
||||
DataFolder=$DataDir$
|
||||
|
||||
stderr=$ExpFolder$
|
||||
numCPUThreads=4
|
||||
# command=dumpNodeInfo
|
||||
#command=train
|
||||
#command=test
|
||||
command=writeWordAndClassInfo:train:test
|
||||
command=train:test
|
||||
type=double
|
||||
|
||||
DEVICEID=-1
|
||||
|
||||
NOISE=100
|
||||
RATE=0.1
|
||||
VOCABSIZE=10000
|
||||
CLASSSIZE=50
|
||||
makeMode=true
|
||||
TRAINFILE=ptb.train.cntk.txt
|
||||
VALIDFILE=ptb.valid.cntk.txt
|
||||
TESTFILE=ptb.test.cntk.txt
|
||||
|
||||
#number of threads
|
||||
nthreads=4
|
||||
|
||||
writeWordAndClassInfo=[
|
||||
action=writeWordAndClass
|
||||
inputFile=$DataFolder$\$TRAINFILE$
|
||||
outputVocabFile=$DataFolder$\vocab.txt
|
||||
outputWord2Cls=$ExpFolder$\word2cls.txt
|
||||
outputCls2Index=$ExpFolder$\cls2idx.txt
|
||||
vocabSize=$VOCABSIZE$
|
||||
cutoff=0
|
||||
printValues=true
|
||||
]
|
||||
|
||||
dumpNodeInfo=[
|
||||
action=dumpnode
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
#nodeName=W0
|
||||
printValues=true
|
||||
]
|
||||
|
||||
devtest=[action=devtest]
|
||||
|
||||
train=[
|
||||
action=train
|
||||
minibatchSize=10
|
||||
traceLevel=1
|
||||
deviceId=$DEVICEID$
|
||||
epochSize=4430000
|
||||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=NCELSTM
|
||||
#CLASSLSTM
|
||||
|
||||
# uncomment below and comment SimpleNetworkBuilder section to use NDL to train RNN LM
|
||||
# NDLNetworkBuilder=[
|
||||
# networkDescription=$ConfigFolder$\rnnlm.ndl
|
||||
# ]
|
||||
|
||||
SimpleNetworkBuilder=[
|
||||
trainingCriterion=NoiseContrastiveEstimationNode
|
||||
evalCriterion=NoiseContrastiveEstimationNode
|
||||
nodeType=Sigmoid
|
||||
initValueScale=6.0
|
||||
layerSizes=$VOCABSIZE$:200:$VOCABSIZE$
|
||||
addPrior=false
|
||||
addDropoutNodes=false
|
||||
applyMeanVarNorm=false
|
||||
uniformInit=true;
|
||||
|
||||
# these are for the class information for class-based language modeling
|
||||
vocabSize=$VOCABSIZE$
|
||||
#nbrClass=$CLASSSIZE$
|
||||
noise_number=$NOISE$
|
||||
]
|
||||
|
||||
# configuration file, base parameters
|
||||
SGD=[
|
||||
makeMode=true
|
||||
learningRatesPerSample=$RATE$
|
||||
momentumPerMB=0
|
||||
gradientClippingWithTruncation=true
|
||||
clippingThresholdPerSample=15.0
|
||||
maxEpochs=40
|
||||
unroll=false
|
||||
numMBsToShowResult=2000
|
||||
# gradUpdateType=AdaGrad
|
||||
gradUpdateType=None
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
loadBestModel=true
|
||||
|
||||
# settings for Auto Adjust Learning Rate
|
||||
AutoAdjust=[
|
||||
# auto learning rate adjustment
|
||||
autoAdjustLR=adjustafterepoch
|
||||
reduceLearnRateIfImproveLessThan=0.001
|
||||
continueReduce=false
|
||||
increaseLearnRateIfImproveMoreThan=1000000000
|
||||
learnRateDecreaseFactor=0.5
|
||||
learnRateIncreaseFactor=1.382
|
||||
numMiniBatch4LRSearch=100
|
||||
numPrevLearnRates=5
|
||||
numBestSearchEpoch=1
|
||||
]
|
||||
|
||||
dropoutRate=0.0
|
||||
]
|
||||
|
||||
reader=[
|
||||
readerType=LMSequenceReader
|
||||
randomize=None
|
||||
nbruttsineachrecurrentiter=10
|
||||
|
||||
# word class info
|
||||
wordclass=$DataFolder$\vocab.txt
|
||||
noise_number=$NOISE$
|
||||
mode=nce
|
||||
# if writerType is set, we will cache to a binary file
|
||||
# if the binary file exists, we will use it instead of parsing this file
|
||||
# writerType=BinaryReader
|
||||
|
||||
#### write definition
|
||||
wfile=$ExpFolder$\sequenceSentence.bin
|
||||
#wsize - inital size of the file in MB
|
||||
# if calculated size would be bigger, that is used instead
|
||||
wsize=256
|
||||
|
||||
#wrecords - number of records we should allocate space for in the file
|
||||
# files cannot be expanded, so this should be large enough. If known modify this element in config before creating file
|
||||
wrecords=1000
|
||||
#windowSize - number of records we should include in BinaryWriter window
|
||||
windowSize=$VOCABSIZE$
|
||||
|
||||
file=$DataFolder$\$TRAINFILE$
|
||||
|
||||
#additional features sections
|
||||
#for now store as expanded category data (including label in)
|
||||
features=[
|
||||
# sentence has no features, so need to set dimension to zero
|
||||
dim=0
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
# sequence break table, list indexes into sequence records, so we know when a sequence starts/stops
|
||||
sequence=[
|
||||
dim=1
|
||||
wrecords=2
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
#labels sections
|
||||
labelIn=[
|
||||
dim=1
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.txt
|
||||
labelType=Category
|
||||
beginSequence="</s>"
|
||||
endSequence="</s>"
|
||||
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=11
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=11
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
#labels sections
|
||||
labels=[
|
||||
dim=1
|
||||
labelType=NextWord
|
||||
beginSequence="O"
|
||||
endSequence="O"
|
||||
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.out.txt
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=3
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=3
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
cvReader=[
|
||||
# reader to use
|
||||
readerType=LMSequenceReader
|
||||
randomize=None
|
||||
mode=softmax
|
||||
# word class info
|
||||
wordclass=$DataFolder$\vocab.txt
|
||||
|
||||
# if writerType is set, we will cache to a binary file
|
||||
# if the binary file exists, we will use it instead of parsing this file
|
||||
# writerType=BinaryReader
|
||||
|
||||
#### write definition
|
||||
wfile=$ExpFolder$\sequenceSentence.valid.bin
|
||||
#wsize - inital size of the file in MB
|
||||
# if calculated size would be bigger, that is used instead
|
||||
wsize=256
|
||||
|
||||
#wrecords - number of records we should allocate space for in the file
|
||||
# files cannot be expanded, so this should be large enough. If known modify this element in config before creating file
|
||||
wrecords=1000
|
||||
#windowSize - number of records we should include in BinaryWriter window
|
||||
windowSize=$VOCABSIZE$
|
||||
|
||||
file=$DataFolder$\$VALIDFILE$
|
||||
|
||||
#additional features sections
|
||||
#for now store as expanded category data (including label in)
|
||||
features=[
|
||||
# sentence has no features, so need to set dimension to zero
|
||||
dim=0
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
# sequence break table, list indexes into sequence records, so we know when a sequence starts/stops
|
||||
sequence=[
|
||||
dim=1
|
||||
wrecords=2
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
#labels sections
|
||||
# it should be the same as that in the training set
|
||||
labelIn=[
|
||||
dim=1
|
||||
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.out.txt
|
||||
labelType=Category
|
||||
beginSequence="</s>"
|
||||
endSequence="</s>"
|
||||
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=11
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=11
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
#labels sections
|
||||
labels=[
|
||||
dim=1
|
||||
labelType=NextWord
|
||||
beginSequence="O"
|
||||
endSequence="O"
|
||||
|
||||
labelDim=$VOCABSIZE$
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.out.txt
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=3
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=3
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
test=[
|
||||
action=eval
|
||||
|
||||
# correspond to the number of words/characteres to train in a minibatch
|
||||
minibatchSize=1
|
||||
# need to be small since models are updated for each minibatch
|
||||
traceLevel=1
|
||||
deviceId=$DEVICEID$
|
||||
epochSize=4430000
|
||||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=NCELSTM
|
||||
|
||||
modelPath=$ExpFolder$\modelRnnCNTK
|
||||
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=LMSequenceReader
|
||||
randomize=None
|
||||
mode=softmax
|
||||
# word class info
|
||||
wordclass=$DataFolder$\vocab.txt
|
||||
|
||||
# if writerType is set, we will cache to a binary file
|
||||
# if the binary file exists, we will use it instead of parsing this file
|
||||
# writerType=BinaryReader
|
||||
|
||||
#### write definition
|
||||
wfile=$ExpFolder$\sequenceSentence.bin
|
||||
#wsize - inital size of the file in MB
|
||||
# if calculated size would be bigger, that is used instead
|
||||
wsize=256
|
||||
|
||||
# wrecords - number of records we should allocate space for in the file
|
||||
# files cannot be expanded, so this should be large enough. If known modify this element in config before creating file
|
||||
wrecords=1000
|
||||
# windowSize - number of records we should include in BinaryWriter window
|
||||
windowSize=$VOCABSIZE$
|
||||
|
||||
file=$DataFolder$\$TESTFILE$
|
||||
|
||||
#additional features sections
|
||||
#for now store as expanded category data (including label in)
|
||||
features=[
|
||||
# sentence has no features, so need to set dimension to zero
|
||||
dim=0
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
# sequence break table, list indexes into sequence records, so we know when a sequence starts/stops
|
||||
sequence=[
|
||||
dim=1
|
||||
wrecords=2
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
#labels sections
|
||||
labelIn=[
|
||||
dim=1
|
||||
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.txt
|
||||
labelType=Category
|
||||
beginSequence="</s>"
|
||||
endSequence="</s>"
|
||||
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=11
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=11
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
#labels sections
|
||||
labels=[
|
||||
dim=1
|
||||
labelType=NextWord
|
||||
beginSequence="O"
|
||||
endSequence="O"
|
||||
|
||||
# vocabulary size
|
||||
labelDim=$VOCABSIZE$
|
||||
|
||||
labelMappingFile=$ExpFolder$\sentenceLabels.out.txt
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=3
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=3
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
|
@ -1,415 +0,0 @@
|
|||
# configuration file for CNTK MNIST Before Check-In Tests
|
||||
|
||||
stderr=c:\temp\\penntreebank\lstmpenntreebank.log
|
||||
command=penntreebanklstmrndmb10lr01:penntreebanktestlstmrndmb10lr01
|
||||
|
||||
#
|
||||
# Class-based cross entropy LSTM experiments
|
||||
#
|
||||
# learning rate: 0.15
|
||||
# minibatch size 10
|
||||
# number of sentences in each minibatch nbruttsineachrecurrentiter=10
|
||||
#
|
||||
# iter 30: PPL = exp(4.9226532) = 137.37
|
||||
# iter 20: PPL = exp(4.9226532) = 137.37
|
||||
# iter 10: PPL = exp(4.9226532) = 137.37
|
||||
# iter 1: PPL = exp(5.087323) = 161.96
|
||||
|
||||
#
|
||||
# baseline from Thomas Mikolov's paper
|
||||
# http://www.fit.vutbr.cz/research/groups/speech/publi/2011/mikolov_icassp2011_5528.pdf
|
||||
# test PPL : 136
|
||||
#
|
||||
# LSTM results from Alex Graves LSTM paper
|
||||
# http://arxiv.org/pdf/1308.0850v2.pdf
|
||||
# test PPL : 138
|
||||
# notice that Alex's paper doesn't use class for speed-up.
|
||||
#
|
||||
|
||||
|
||||
penntreebanklstmrndmb10lr01=[
|
||||
# this is the maximum size for the minibatch, since sequence minibatches are really just a single sequence
|
||||
# can be considered as the maximum length of a sentence
|
||||
action=train
|
||||
|
||||
# correspond to the number of words/characteres to train in a minibatch
|
||||
minibatchSize=6
|
||||
# need to be small since models are updated for each minibatch
|
||||
traceLevel=1
|
||||
deviceId=-1
|
||||
epochSize=4430000
|
||||
# which is 886 * 5000
|
||||
SimpleNetworkBuilder=[
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
rnnType=CLASSLSTM
|
||||
|
||||
trainingCriterion=classcrossentropywithsoftmax
|
||||
evalCriterion=classcrossentropywithsoftmax
|
||||
nodeType=Sigmoid
|
||||
initValueScale=6.0
|
||||
layerSizes=10000:200:10000
|
||||
addPrior=false
|
||||
addDropoutNodes=false
|
||||
applyMeanVarNorm=false
|
||||
uniformInit=true;
|
||||
vocabSize=10000
|
||||
nbrClass=50
|
||||
]
|
||||
|
||||
# configuration file, base parameters
|
||||
SGD=[
|
||||
learningRatesPerSample=0.15
|
||||
momentumPerMB=0.90
|
||||
# momentumPerMB=0.0
|
||||
# gradientClippingWithTruncation=false
|
||||
# clippingThresholdPerSample=15.0
|
||||
|
||||
maxEpochs=150
|
||||
unroll=false
|
||||
numMBsToShowResult=1000
|
||||
useAdagrad=true
|
||||
|
||||
modelPath=c:\temp\penntreebank\cntkdebug.dnn
|
||||
loadBestModel=true
|
||||
|
||||
# settings for Auto Adjust Learning Rate
|
||||
AutoAdjust=[
|
||||
# auto learning rate adjustment
|
||||
autoAdjustLR=adjustafterepoch
|
||||
reduceLearnRateIfImproveLessThan=0
|
||||
increaseLearnRateIfImproveMoreThan=1000000000
|
||||
learnRateDecreaseFactor=0.618
|
||||
learnRateIncreaseFactor=1.382
|
||||
numMiniBatch4LRSearch=100
|
||||
numPrevLearnRates=5
|
||||
numBestSearchEpoch=1
|
||||
]
|
||||
|
||||
|
||||
dropoutRate=0.0
|
||||
]
|
||||
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=LMSequenceReader
|
||||
randomize=None
|
||||
|
||||
# word class info
|
||||
wordclass=c:\exp\penntreebank\data\wordclass.txt
|
||||
|
||||
# number of utterances to be allocated for each minibatch
|
||||
nbruttsineachrecurrentiter=10
|
||||
|
||||
# if writerType is set, we will cache to a binary file
|
||||
# if the binary file exists, we will use it instead of parsing this file
|
||||
# writerType=BinaryReader
|
||||
|
||||
#### write definition
|
||||
wfile=c:\temp\penntreebank\sequenceSentence.bin
|
||||
#wsize - inital size of the file in MB
|
||||
# if calculated size would be bigger, that is used instead
|
||||
wsize=256
|
||||
|
||||
#wrecords - number of records we should allocate space for in the file
|
||||
# files cannot be expanded, so this should be large enough. If known modify this element in config before creating file
|
||||
wrecords=1000
|
||||
#windowSize - number of records we should include in BinaryWriter window
|
||||
windowSize=10000
|
||||
|
||||
# file=c:\exp\penntreebank\data\ptb.train.cntk.100.txt
|
||||
file=c:\exp\penntreebank\data\ptb.train.cntk.txt
|
||||
|
||||
#additional features sections
|
||||
#for now store as expanded category data (including label in)
|
||||
features=[
|
||||
# sentence has no features, so need to set dimension to zero
|
||||
dim=0
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
# sequence break table, list indexes into sequence records, so we know when a sequence starts/stops
|
||||
sequence=[
|
||||
dim=1
|
||||
wrecords=2
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
#labels sections
|
||||
labelIn=[
|
||||
dim=1
|
||||
|
||||
# vocabulary size
|
||||
labelDim=10000
|
||||
labelMappingFile=c:\temp\penntreebank\sentenceLabels.txt
|
||||
labelType=Category
|
||||
beginSequence="</s>"
|
||||
endSequence="</s>"
|
||||
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=11
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=11
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
#labels sections
|
||||
labels=[
|
||||
dim=1
|
||||
labelType=NextWord
|
||||
beginSequence="O"
|
||||
endSequence="O"
|
||||
|
||||
# vocabulary size
|
||||
labelDim=10000
|
||||
|
||||
labelMappingFile=c:\temp\penntreebank\sentenceLabels.out.txt
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=3
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=3
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
cvReader=[
|
||||
# reader to use
|
||||
readerType=LMSequenceReader
|
||||
randomize=None
|
||||
|
||||
# word class info
|
||||
wordclass=c:\exp\penntreebank\data\wordclass.txt
|
||||
|
||||
# if writerType is set, we will cache to a binary file
|
||||
# if the binary file exists, we will use it instead of parsing this file
|
||||
# writerType=BinaryReader
|
||||
|
||||
#### write definition
|
||||
wfile=c:\temp\penntreebank\sequenceSentence.valid.bin
|
||||
#wsize - inital size of the file in MB
|
||||
# if calculated size would be bigger, that is used instead
|
||||
wsize=256
|
||||
|
||||
#wrecords - number of records we should allocate space for in the file
|
||||
# files cannot be expanded, so this should be large enough. If known modify this element in config before creating file
|
||||
wrecords=1000
|
||||
#windowSize - number of records we should include in BinaryWriter window
|
||||
windowSize=10000
|
||||
|
||||
# file=c:\exp\penntreebank\data\ptb.valid.cntk.100.txt
|
||||
file=c:\exp\penntreebank\data\ptb.valid.cntk.txt
|
||||
|
||||
#additional features sections
|
||||
#for now store as expanded category data (including label in)
|
||||
features=[
|
||||
# sentence has no features, so need to set dimension to zero
|
||||
dim=0
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
# sequence break table, list indexes into sequence records, so we know when a sequence starts/stops
|
||||
sequence=[
|
||||
dim=1
|
||||
wrecords=2
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
#labels sections
|
||||
# it should be the same as that in the training set
|
||||
labelIn=[
|
||||
dim=1
|
||||
|
||||
# vocabulary size
|
||||
labelDim=10000
|
||||
labelMappingFile=c:\temp\penntreebank\sentenceLabels.out.txt
|
||||
labelType=Category
|
||||
beginSequence="</s>"
|
||||
endSequence="</s>"
|
||||
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=11
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=11
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
#labels sections
|
||||
labels=[
|
||||
dim=1
|
||||
labelType=NextWord
|
||||
beginSequence="O"
|
||||
endSequence="O"
|
||||
|
||||
labelDim=10000
|
||||
labelMappingFile=c:\temp\penntreebank\sentenceLabels.out.txt
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=3
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=3
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
||||
penntreebanktestlstmrndmb10lr01=[
|
||||
# this is the maximum size for the minibatch, since sequence minibatches are really just a single sequence
|
||||
# can be considered as the maximum length of a sentence
|
||||
action=eval
|
||||
|
||||
# correspond to the number of words/characteres to train in a minibatch
|
||||
minibatchSize=6
|
||||
# need to be small since models are updated for each minibatch
|
||||
traceLevel=1
|
||||
deviceId=-1
|
||||
epochSize=4430000
|
||||
# which is 886 * 5000
|
||||
recurrentLayer=1
|
||||
defaultHiddenActivity=0.1
|
||||
useValidation=true
|
||||
rnnType=CLASSLM
|
||||
|
||||
modelPath=c:\temp\penntreebank\cntkdebug.dnn
|
||||
|
||||
reader=[
|
||||
# reader to use
|
||||
readerType=LMSequenceReader
|
||||
randomize=None
|
||||
|
||||
# word class info
|
||||
wordclass=c:\exp\penntreebank\data\wordclass.txt
|
||||
|
||||
# if writerType is set, we will cache to a binary file
|
||||
# if the binary file exists, we will use it instead of parsing this file
|
||||
# writerType=BinaryReader
|
||||
|
||||
#### write definition
|
||||
wfile=c:\temp\penntreebank\sequenceSentence.bin
|
||||
#wsize - inital size of the file in MB
|
||||
# if calculated size would be bigger, that is used instead
|
||||
wsize=256
|
||||
|
||||
#wrecords - number of records we should allocate space for in the file
|
||||
# files cannot be expanded, so this should be large enough. If known modify this element in config before creating file
|
||||
wrecords=1000
|
||||
#windowSize - number of records we should include in BinaryWriter window
|
||||
windowSize=10000
|
||||
|
||||
# file=c:\exp\penntreebank\data\ptb.test.cntk.100.txt
|
||||
file=c:\exp\penntreebank\data\ptb.test.cntk.txt
|
||||
|
||||
#additional features sections
|
||||
#for now store as expanded category data (including label in)
|
||||
features=[
|
||||
# sentence has no features, so need to set dimension to zero
|
||||
dim=0
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
# sequence break table, list indexes into sequence records, so we know when a sequence starts/stops
|
||||
sequence=[
|
||||
dim=1
|
||||
wrecords=2
|
||||
### write definition
|
||||
sectionType=data
|
||||
]
|
||||
#labels sections
|
||||
labelIn=[
|
||||
dim=1
|
||||
|
||||
# vocabulary size
|
||||
labelDim=10000
|
||||
labelMappingFile=c:\temp\penntreebank\sentenceLabels.txt
|
||||
labelType=Category
|
||||
beginSequence="</s>"
|
||||
endSequence="</s>"
|
||||
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=11
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=11
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
#labels sections
|
||||
labels=[
|
||||
dim=1
|
||||
labelType=NextWord
|
||||
beginSequence="O"
|
||||
endSequence="O"
|
||||
|
||||
# vocabulary size
|
||||
labelDim=10000
|
||||
|
||||
labelMappingFile=c:\temp\penntreebank\sentenceLabels.out.txt
|
||||
#### Write definition ####
|
||||
# sizeof(unsigned) which is the label index type
|
||||
elementSize=4
|
||||
sectionType=labels
|
||||
mapping=[
|
||||
#redefine number of records for this section, since we don't need to save it for each data record
|
||||
wrecords=3
|
||||
#variable size so use an average string size
|
||||
elementSize=10
|
||||
sectionType=labelMapping
|
||||
]
|
||||
category=[
|
||||
dim=3
|
||||
#elementSize=sizeof(ElemType) is default
|
||||
sectionType=categoryLabels
|
||||
]
|
||||
]
|
||||
]
|
||||
]
|
||||
|
Двоичные данные
ExampleSetups/LM/LSTMLM/perplexity.class50.lr0.1.txt
Двоичные данные
ExampleSetups/LM/LSTMLM/perplexity.class50.lr0.1.txt
Двоичный файл не отображается.
|
@ -1,40 +0,0 @@
|
|||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.4415899 Perplexity = 230.80885 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.4415899 Perplexity = 230.80885
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.2513086 Perplexity = 190.8158 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.2513086 Perplexity = 190.8158
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.1372039 Perplexity = 170.23909 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.1372039 Perplexity = 170.23909
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.0720036 Perplexity = 159.49358 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.0720036 Perplexity = 159.49358
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.0618825 Perplexity = 157.88746 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.0618825 Perplexity = 157.88746
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.0321352 Perplexity = 153.25991 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.0321352 Perplexity = 153.25991
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.0083887 Perplexity = 149.66339 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.0083887 Perplexity = 149.66339
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.0220441 Perplexity = 151.72111 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 5.0220441 Perplexity = 151.72111
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9666183 Perplexity = 143.54066 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9666183 Perplexity = 143.54066
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9719939 Perplexity = 144.31436 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9719939 Perplexity = 144.31436
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9397468 Perplexity = 139.73487 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9397468 Perplexity = 139.73487
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9442405 Perplexity = 140.36421 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9442405 Perplexity = 140.36421
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9287878 Perplexity = 138.21187 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9287878 Perplexity = 138.21187
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9292672 Perplexity = 138.27814 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9292672 Perplexity = 138.27814
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9187232 Perplexity = 136.82781 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9187232 Perplexity = 136.82781
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9224714 Perplexity = 137.34162 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9224714 Perplexity = 137.34162
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9124989 Perplexity = 135.97878 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9124989 Perplexity = 135.97878
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9146056 Perplexity = 136.26556 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9146056 Perplexity = 136.26556
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9083939 Perplexity = 135.42174 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9083939 Perplexity = 135.42174
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9042288 Perplexity = 134.85886 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9042288 Perplexity = 134.85886
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9007954 Perplexity = 134.39664 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.9007954 Perplexity = 134.39664
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8977358 Perplexity = 133.98607 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8977358 Perplexity = 133.98607
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8960381 Perplexity = 133.75879 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8960381 Perplexity = 133.75879
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8950807 Perplexity = 133.63079 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8950807 Perplexity = 133.63079
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8947338 Perplexity = 133.58444 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8947338 Perplexity = 133.58444
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8945776 Perplexity = 133.56358 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8945776 Perplexity = 133.56358
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8944772 Perplexity = 133.55017 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8944772 Perplexity = 133.55017
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8944128 Perplexity = 133.54157 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8944128 Perplexity = 133.54157
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943936 Perplexity = 133.53901 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943936 Perplexity = 133.53901
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.89438 Perplexity = 133.53718 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.89438 Perplexity = 133.53718
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943731 Perplexity = 133.53627 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943731 Perplexity = 133.53627
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943699 Perplexity = 133.53584 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943699 Perplexity = 133.53584
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.894368 Perplexity = 133.53558 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.894368 Perplexity = 133.53558
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.894367 Perplexity = 133.53545 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.894367 Perplexity = 133.53545
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943667 Perplexity = 133.53541 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943667 Perplexity = 133.53541
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943665 Perplexity = 133.53538 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943665 Perplexity = 133.53538
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943664 Perplexity = 133.53537 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943664 Perplexity = 133.53537
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943664 Perplexity = 133.53537 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943664 Perplexity = 133.53537
|
||||
Final Results: Minibatch[1-8905]: Samples Seen = 73760 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943663 Perplexity = 133.53537 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8943663 Perplexity = 133.53537
|
||||
Final Results: Minibatch[1-82430]: Samples Seen = 82430 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8084526 Perplexity = 122.54185 TrainNodeNCEBasedCrossEntropy: NCEBasedCrossEntropyWithSoftmax/Sample = 4.8084526 Perplexity = 122.54185
|
|
@ -1,4 +0,0 @@
|
|||
# LSTM LM setup on PennTreebank.
|
||||
|
||||
to use it, call
|
||||
cntk.exe configFile=global.config+lstmlm.gpu.config ExpDir=<your exp dir>
|
|
@ -1,14 +0,0 @@
|
|||
# CNTK Demos and Example Setups
|
||||
|
||||
This folder contains examples that correspond to popular data sets and tasks.
|
||||
These data sets often require a license and are therefore not included in the repository.
|
||||
The 'Demos' folder contains a few self-contained and documented demos to get started with CNTK.
|
||||
|
||||
The four examples shown in the table below provide a good introduction to CNTK.
|
||||
|
||||
|Folder | Domain | Network types |
|
||||
|:------------------------|:-------------------------------------------------|:----------------|
|
||||
Demos/Simple2d | Synthetic 2d data | FF (CPU and GPU)
|
||||
Demos/Speech | Speech data (CMU AN4) | FF and LSTM
|
||||
Demos/Text | Text data (penn treebank) | RNN
|
||||
ExampleSetups/Image/MNIST | Image data (MNIST handwritten digit recognition) | CNN
|
До Ширина: | Высота: | Размер: 177 KiB После Ширина: | Высота: | Размер: 177 KiB |
До Ширина: | Высота: | Размер: 11 KiB После Ширина: | Высота: | Размер: 11 KiB |
До Ширина: | Высота: | Размер: 22 KiB После Ширина: | Высота: | Размер: 22 KiB |
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче