CNTK 始终 return errorRate 为 0
CNTK always return errorRate is 0
我是 CNTK 的新手,我正在尝试编写一个 cntk 来训练德州扑克游戏动作的数据。但是,无论我如何更改 cntk 配置文件,每个训练数据的输出都是相同的。
这是我的 cntk 文件:
# CNTK Configuration File for creating a slot tagger and an intent tagger.
command = Train:Output:Test
makeMode = false ; traceLevel = 0 ; deviceId = -1
rootDir = "." ; dataDir = "$rootDir$" ; modelDir = "$rootDir$/Models"
modelPath = "$modelDir$/slu.lstm"
# The command to train the LSTM model
Train = {
action = "train"
BrainScriptNetworkBuilder = {
featDim = 22 # contextual words are used as features: previous word, current word, next word.
hiddenDim = 300
maxLayer = 1
initScale = 1
labelDim = 1
# inputs
HandPercentage = Input {1}
NoOfPlayersInPlay = Input {1}
HeroPosition = Input {1}
Pot = Input {1}
PlayerPosition0 = Input {1}
PlayerBettingSize0 = Input {1}
PlayerChips0 = Input {1}
PlayerPosition1 = Input {1}
PlayerBettingSize1 = Input {1}
PlayerChips1 = Input {1}
PlayerPosition2 = Input {1}
PlayerBettingSize2 = Input {1}
PlayerChips2 = Input {1}
PlayerPosition3 = Input {1}
PlayerBettingSize3 = Input {1}
PlayerChips3 = Input {1}
PlayerPosition4 = Input {1}
PlayerBettingSize4 = Input {1}
PlayerChips4 = Input {1}
PlayerPosition5 = Input {1}
PlayerBettingSize5 = Input {1}
PlayerChips5 = Input {1}
features = RowStack(
HandPercentage:
NoOfPlayersInPlay:
HeroPosition:
Pot:
PlayerPosition0:
PlayerBettingSize0:
PlayerChips0:
PlayerPosition1:
PlayerBettingSize1:
PlayerChips1:
PlayerPosition2:
PlayerBettingSize2:
PlayerChips2:
PlayerPosition3:
PlayerBettingSize3:
PlayerChips3:
PlayerPosition4:
PlayerBettingSize4:
PlayerChips4:
PlayerPosition5:
PlayerBettingSize5:
PlayerChips5
)
labels = Input {labelDim}
# build the LSTM stack
# lstmDims[i:0..maxLayer-1] = hiddenDim
# NoAuxInputHook (input, lstmState) = BS.Constants.None
# lstmStack = BS.RNNs.RecurrentLSTMPStack (lstmDims,
# cellDims=lstmDims,
# features,
# inputDim=featDim,
# previousHook=BS.RNNs.PreviousHC,
# augmentInputHook=BS.RNNs.NoAuxInputHook,
# augmentInputDim=0,
# enableSelfStabilization=false)
#
# lstmOutputLayer = Length (lstmStack)-1
# LSTMoutput = lstmStack[lstmOutputLayer].h
#
# W = Parameter(labelDim, hiddenDim, init = "uniform", initValueScale=initScale)
# b = Parameter(labelDim, 1, init = "fixedValue", value=0)
# outputs = W * LSTMoutput + b
model = Sequential (
RecurrentLSTMLayer {hiddenDim, goBackwards=false} : # LSTM
DenseLayer {labelDim} # output layer
)
# model application
outputs = model (features)
cr = CrossEntropyWithSoftmax(labels, outputs)
errs = ClassificationError(labels, outputs)
featureNodes = (HandPercentage:
NoOfPlayersInPlay:
HeroPosition:
Pot:
PlayerPosition0:
PlayerBettingSize0:
PlayerChips0:
PlayerPosition1:
PlayerBettingSize1:
PlayerChips1:
PlayerPosition2:
PlayerBettingSize2:
PlayerChips2:
PlayerPosition3:
PlayerBettingSize3:
PlayerChips3:
PlayerPosition4:
PlayerBettingSize4:
PlayerChips4:
PlayerPosition5:
PlayerBettingSize5:
PlayerChips5)
labelNodes = (labels)
criterionNodes = (cr)
evaluationNodes = (errs)
outputNodes = (outputs)
}
SGD = {
maxEpochs = 10 ; epochSize = 5000
minibatchSize = 70
learningRatesPerSample = 1
gradUpdateType = "fsAdaGrad"
}
reader = {
readerType = "CNTKTextFormatReader"
file = "preflopData.txt"
randomize = true
input = [
#|HandPercentage 0.5958
HandPercentage = [
dim = 1
format = "dense"
]
#|NoOfPlayersInPlay 2
NoOfPlayersInPlay = [
dim = 1
format = "dense"
]
#|HeroPosition 5
HeroPosition = [
dim = 1
format = "dense"
]
#|Pot 1.0000
Pot = [
dim = 1
format = "dense"
]
#|PlayerPosition0 0
PlayerPosition0 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize0 0.00
PlayerBettingSize0 = [
dim = 1
format = "dense"
]
#|PlayerChips0 100.00
PlayerChips0 = [
dim = 1
format = "dense"
]
#|PlayerPosition1 1
PlayerPosition1 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize1 0.00
PlayerBettingSize1 = [
dim = 1
format = "dense"
]
#|PlayerChips1 100.00
PlayerChips1 = [
dim = 1
format = "dense"
]
#|PlayerPosition2 2
PlayerPosition2 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize2 0.00
PlayerBettingSize2 = [
dim = 1
format = "dense"
]
#|PlayerChips2 100.00
PlayerChips2 = [
dim = 1
format = "dense"
]
#|PlayerPosition3 3
PlayerPosition3 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize3 0.00
PlayerBettingSize3 = [
dim = 1
format = "dense"
]
#|PlayerChips3 100.00
PlayerChips3 = [
dim = 1
format = "dense"
]
#|PlayerPosition4 4
PlayerPosition4 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize4 1.00
PlayerBettingSize4 = [
dim = 1
format = "dense"
]
#|PlayerChips4 99.00
PlayerChips4 = [
dim = 1
format = "dense"
]
#|PlayerPosition5 5
PlayerPosition5 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize5 0.00
PlayerBettingSize5 = [
dim = 1
format = "dense"
]
#|PlayerChips5 100.00
PlayerChips5 = [
dim = 1
format = "dense"
]
#|Action 1
labels = [
alias = "Action"
dim = 1
format = "dense"
]
]
}
}
# Test the model's accuracy (as an error count)
Test = {
action = "test"
traceLevel = 1
epochSize = 0
defaultHiddenActivity = 0.1
BrainScriptNetworkBuilder = [
labels = Input(1, tag = "label")
modelAsTrained = BS.Network.Load ("$modelPath$")
final = modelAsTrained.outputs
errorRate = ClassificationError(labels, final, tag='evaluation')
]
evalNodeNames = errorRate
reader = {
readerType = "CNTKTextFormatReader"
file = "preflopData.txt"
randomize = false
input = [
#|HandPercentage 0.5958
HandPercentage = [
dim = 1
format = "dense"
]
#|NoOfPlayersInPlay 2
NoOfPlayersInPlay = [
dim = 1
format = "dense"
]
#|HeroPosition 5
HeroPosition = [
dim = 1
format = "dense"
]
#|Pot 1.0000
Pot = [
dim = 1
format = "dense"
]
#|PlayerPosition0 0
PlayerPosition0 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize0 0.00
PlayerBettingSize0 = [
dim = 1
format = "dense"
]
#|PlayerChips0 100.00
PlayerChips0 = [
dim = 1
format = "dense"
]
#|PlayerPosition1 1
PlayerPosition1 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize1 0.00
PlayerBettingSize1 = [
dim = 1
format = "dense"
]
#|PlayerChips1 100.00
PlayerChips1 = [
dim = 1
format = "dense"
]
#|PlayerPosition2 2
PlayerPosition2 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize2 0.00
PlayerBettingSize2 = [
dim = 1
format = "dense"
]
#|PlayerChips2 100.00
PlayerChips2 = [
dim = 1
format = "dense"
]
#|PlayerPosition3 3
PlayerPosition3 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize3 0.00
PlayerBettingSize3 = [
dim = 1
format = "dense"
]
#|PlayerChips3 100.00
PlayerChips3 = [
dim = 1
format = "dense"
]
#|PlayerPosition4 4
PlayerPosition4 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize4 1.00
PlayerBettingSize4 = [
dim = 1
format = "dense"
]
#|PlayerChips4 99.00
PlayerChips4 = [
dim = 1
format = "dense"
]
#|PlayerPosition5 5
PlayerPosition5 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize5 0.00
PlayerBettingSize5 = [
dim = 1
format = "dense"
]
#|PlayerChips5 100.00
PlayerChips5 = [
dim = 1
format = "dense"
]
#|Action 1
labels = [
alias = "Action"
dim = 1
format = "dense"
]
]
}
}
# output the results
Output = [
action = "write"
traceLevel = 1
epochSize = 0
defaultHiddenActivity = 0.1
BrainScriptNetworkBuilder = [
modelAsTrained = BS.Network.Load ("$modelPath$")
final = modelAsTrained.outputs
]
outputNodeNames = final
reader = [
readerType = "CNTKTextFormatReader"
file = "preflopData.txt"
randomize = false
input = [
#|HandPercentage 0.5958
HandPercentage = [
dim = 1
format = "dense"
]
#|NoOfPlayersInPlay 2
NoOfPlayersInPlay = [
dim = 1
format = "dense"
]
#|HeroPosition 5
HeroPosition = [
dim = 1
format = "dense"
]
#|Pot 1.0000
Pot = [
dim = 1
format = "dense"
]
#|PlayerPosition0 0
PlayerPosition0 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize0 0.00
PlayerBettingSize0 = [
dim = 1
format = "dense"
]
#|PlayerChips0 100.00
PlayerChips0 = [
dim = 1
format = "dense"
]
#|PlayerPosition1 1
PlayerPosition1 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize1 0.00
PlayerBettingSize1 = [
dim = 1
format = "dense"
]
#|PlayerChips1 100.00
PlayerChips1 = [
dim = 1
format = "dense"
]
#|PlayerPosition2 2
PlayerPosition2 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize2 0.00
PlayerBettingSize2 = [
dim = 1
format = "dense"
]
#|PlayerChips2 100.00
PlayerChips2 = [
dim = 1
format = "dense"
]
#|PlayerPosition3 3
PlayerPosition3 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize3 0.00
PlayerBettingSize3 = [
dim = 1
format = "dense"
]
#|PlayerChips3 100.00
PlayerChips3 = [
dim = 1
format = "dense"
]
#|PlayerPosition4 4
PlayerPosition4 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize4 1.00
PlayerBettingSize4 = [
dim = 1
format = "dense"
]
#|PlayerChips4 99.00
PlayerChips4 = [
dim = 1
format = "dense"
]
#|PlayerPosition5 5
PlayerPosition5 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize5 0.00
PlayerBettingSize5 = [
dim = 1
format = "dense"
]
#|PlayerChips5 100.00
PlayerChips5 = [
dim = 1
format = "dense"
]
#|Action 1
labels = [
alias = "Action"
dim = 1
format = "dense"
]
]
]
outputPath = "Preflop_Result.txt" # dump the output to this text file
]
训练文件中的数据如下:
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 1.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 1.00 |PlayerChips4 99.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 2
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 2.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 2.00 |PlayerChips4 98.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 3.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 3.00 |PlayerChips4 97.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 4.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 4.00 |PlayerChips4 96.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 5.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 5.00 |PlayerChips4 95.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 6.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 6.00 |PlayerChips4 94.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 7.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 7.00 |PlayerChips4 93.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 8.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 8.00 |PlayerChips4 92.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 9.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 9.00 |PlayerChips4 91.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 100.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 100.00 |PlayerChips4 0.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 10.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 10.00 |PlayerChips4 90.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 15.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 15.00 |PlayerChips4 85.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 20.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 20.00 |PlayerChips4 80.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 30.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 30.00 |PlayerChips4 70.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 40.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 40.00 |PlayerChips4 60.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
但是输出总是如下所示:
Finished Epoch[ 1 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 5000; learningRatePerSample = 1; epochTime=0.784258s
Finished Epoch[ 2 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 10000; learningRatePerSample = 1; epochTime=0.517457s
Finished Epoch[ 3 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 15000; learningRatePerSample = 1; epochTime=0.50032s
Finished Epoch[ 4 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 20000; learningRatePerSample = 1; epochTime=0.508821s
Finished Epoch[ 5 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 25000; learningRatePerSample = 1; epochTime=0.519995s
Finished Epoch[ 6 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 30000; learningRatePerSample = 1; epochTime=0.511545s
Finished Epoch[ 7 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 35000; learningRatePerSample = 1; epochTime=0.524342s
Finished Epoch[ 8 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 40000; learningRatePerSample = 1; epochTime=0.517396s
Finished Epoch[ 9 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 45000; learningRatePerSample = 1; epochTime=0.527745s
Finished Epoch[10 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 50000; learningRatePerSample = 1; epochTime=0.552185s
任何人都可以帮助告诉我我的 cntk 在哪里可能是错误的吗?
您得到这个结果是因为您在二进制标签上使用了 CrossEntropyWithSoftmax
。您的问题有两种解决方案。一种解决方案是使用二维输出和 1 0
或 0 1
的标签。另一种解决方案是通过 sigmoid 传递最终输出并使用 Logistic 操作。
我是 CNTK 的新手,我正在尝试编写一个 cntk 来训练德州扑克游戏动作的数据。但是,无论我如何更改 cntk 配置文件,每个训练数据的输出都是相同的。
这是我的 cntk 文件:
# CNTK Configuration File for creating a slot tagger and an intent tagger.
command = Train:Output:Test
makeMode = false ; traceLevel = 0 ; deviceId = -1
rootDir = "." ; dataDir = "$rootDir$" ; modelDir = "$rootDir$/Models"
modelPath = "$modelDir$/slu.lstm"
# The command to train the LSTM model
Train = {
action = "train"
BrainScriptNetworkBuilder = {
featDim = 22 # contextual words are used as features: previous word, current word, next word.
hiddenDim = 300
maxLayer = 1
initScale = 1
labelDim = 1
# inputs
HandPercentage = Input {1}
NoOfPlayersInPlay = Input {1}
HeroPosition = Input {1}
Pot = Input {1}
PlayerPosition0 = Input {1}
PlayerBettingSize0 = Input {1}
PlayerChips0 = Input {1}
PlayerPosition1 = Input {1}
PlayerBettingSize1 = Input {1}
PlayerChips1 = Input {1}
PlayerPosition2 = Input {1}
PlayerBettingSize2 = Input {1}
PlayerChips2 = Input {1}
PlayerPosition3 = Input {1}
PlayerBettingSize3 = Input {1}
PlayerChips3 = Input {1}
PlayerPosition4 = Input {1}
PlayerBettingSize4 = Input {1}
PlayerChips4 = Input {1}
PlayerPosition5 = Input {1}
PlayerBettingSize5 = Input {1}
PlayerChips5 = Input {1}
features = RowStack(
HandPercentage:
NoOfPlayersInPlay:
HeroPosition:
Pot:
PlayerPosition0:
PlayerBettingSize0:
PlayerChips0:
PlayerPosition1:
PlayerBettingSize1:
PlayerChips1:
PlayerPosition2:
PlayerBettingSize2:
PlayerChips2:
PlayerPosition3:
PlayerBettingSize3:
PlayerChips3:
PlayerPosition4:
PlayerBettingSize4:
PlayerChips4:
PlayerPosition5:
PlayerBettingSize5:
PlayerChips5
)
labels = Input {labelDim}
# build the LSTM stack
# lstmDims[i:0..maxLayer-1] = hiddenDim
# NoAuxInputHook (input, lstmState) = BS.Constants.None
# lstmStack = BS.RNNs.RecurrentLSTMPStack (lstmDims,
# cellDims=lstmDims,
# features,
# inputDim=featDim,
# previousHook=BS.RNNs.PreviousHC,
# augmentInputHook=BS.RNNs.NoAuxInputHook,
# augmentInputDim=0,
# enableSelfStabilization=false)
#
# lstmOutputLayer = Length (lstmStack)-1
# LSTMoutput = lstmStack[lstmOutputLayer].h
#
# W = Parameter(labelDim, hiddenDim, init = "uniform", initValueScale=initScale)
# b = Parameter(labelDim, 1, init = "fixedValue", value=0)
# outputs = W * LSTMoutput + b
model = Sequential (
RecurrentLSTMLayer {hiddenDim, goBackwards=false} : # LSTM
DenseLayer {labelDim} # output layer
)
# model application
outputs = model (features)
cr = CrossEntropyWithSoftmax(labels, outputs)
errs = ClassificationError(labels, outputs)
featureNodes = (HandPercentage:
NoOfPlayersInPlay:
HeroPosition:
Pot:
PlayerPosition0:
PlayerBettingSize0:
PlayerChips0:
PlayerPosition1:
PlayerBettingSize1:
PlayerChips1:
PlayerPosition2:
PlayerBettingSize2:
PlayerChips2:
PlayerPosition3:
PlayerBettingSize3:
PlayerChips3:
PlayerPosition4:
PlayerBettingSize4:
PlayerChips4:
PlayerPosition5:
PlayerBettingSize5:
PlayerChips5)
labelNodes = (labels)
criterionNodes = (cr)
evaluationNodes = (errs)
outputNodes = (outputs)
}
SGD = {
maxEpochs = 10 ; epochSize = 5000
minibatchSize = 70
learningRatesPerSample = 1
gradUpdateType = "fsAdaGrad"
}
reader = {
readerType = "CNTKTextFormatReader"
file = "preflopData.txt"
randomize = true
input = [
#|HandPercentage 0.5958
HandPercentage = [
dim = 1
format = "dense"
]
#|NoOfPlayersInPlay 2
NoOfPlayersInPlay = [
dim = 1
format = "dense"
]
#|HeroPosition 5
HeroPosition = [
dim = 1
format = "dense"
]
#|Pot 1.0000
Pot = [
dim = 1
format = "dense"
]
#|PlayerPosition0 0
PlayerPosition0 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize0 0.00
PlayerBettingSize0 = [
dim = 1
format = "dense"
]
#|PlayerChips0 100.00
PlayerChips0 = [
dim = 1
format = "dense"
]
#|PlayerPosition1 1
PlayerPosition1 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize1 0.00
PlayerBettingSize1 = [
dim = 1
format = "dense"
]
#|PlayerChips1 100.00
PlayerChips1 = [
dim = 1
format = "dense"
]
#|PlayerPosition2 2
PlayerPosition2 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize2 0.00
PlayerBettingSize2 = [
dim = 1
format = "dense"
]
#|PlayerChips2 100.00
PlayerChips2 = [
dim = 1
format = "dense"
]
#|PlayerPosition3 3
PlayerPosition3 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize3 0.00
PlayerBettingSize3 = [
dim = 1
format = "dense"
]
#|PlayerChips3 100.00
PlayerChips3 = [
dim = 1
format = "dense"
]
#|PlayerPosition4 4
PlayerPosition4 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize4 1.00
PlayerBettingSize4 = [
dim = 1
format = "dense"
]
#|PlayerChips4 99.00
PlayerChips4 = [
dim = 1
format = "dense"
]
#|PlayerPosition5 5
PlayerPosition5 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize5 0.00
PlayerBettingSize5 = [
dim = 1
format = "dense"
]
#|PlayerChips5 100.00
PlayerChips5 = [
dim = 1
format = "dense"
]
#|Action 1
labels = [
alias = "Action"
dim = 1
format = "dense"
]
]
}
}
# Test the model's accuracy (as an error count)
Test = {
action = "test"
traceLevel = 1
epochSize = 0
defaultHiddenActivity = 0.1
BrainScriptNetworkBuilder = [
labels = Input(1, tag = "label")
modelAsTrained = BS.Network.Load ("$modelPath$")
final = modelAsTrained.outputs
errorRate = ClassificationError(labels, final, tag='evaluation')
]
evalNodeNames = errorRate
reader = {
readerType = "CNTKTextFormatReader"
file = "preflopData.txt"
randomize = false
input = [
#|HandPercentage 0.5958
HandPercentage = [
dim = 1
format = "dense"
]
#|NoOfPlayersInPlay 2
NoOfPlayersInPlay = [
dim = 1
format = "dense"
]
#|HeroPosition 5
HeroPosition = [
dim = 1
format = "dense"
]
#|Pot 1.0000
Pot = [
dim = 1
format = "dense"
]
#|PlayerPosition0 0
PlayerPosition0 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize0 0.00
PlayerBettingSize0 = [
dim = 1
format = "dense"
]
#|PlayerChips0 100.00
PlayerChips0 = [
dim = 1
format = "dense"
]
#|PlayerPosition1 1
PlayerPosition1 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize1 0.00
PlayerBettingSize1 = [
dim = 1
format = "dense"
]
#|PlayerChips1 100.00
PlayerChips1 = [
dim = 1
format = "dense"
]
#|PlayerPosition2 2
PlayerPosition2 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize2 0.00
PlayerBettingSize2 = [
dim = 1
format = "dense"
]
#|PlayerChips2 100.00
PlayerChips2 = [
dim = 1
format = "dense"
]
#|PlayerPosition3 3
PlayerPosition3 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize3 0.00
PlayerBettingSize3 = [
dim = 1
format = "dense"
]
#|PlayerChips3 100.00
PlayerChips3 = [
dim = 1
format = "dense"
]
#|PlayerPosition4 4
PlayerPosition4 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize4 1.00
PlayerBettingSize4 = [
dim = 1
format = "dense"
]
#|PlayerChips4 99.00
PlayerChips4 = [
dim = 1
format = "dense"
]
#|PlayerPosition5 5
PlayerPosition5 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize5 0.00
PlayerBettingSize5 = [
dim = 1
format = "dense"
]
#|PlayerChips5 100.00
PlayerChips5 = [
dim = 1
format = "dense"
]
#|Action 1
labels = [
alias = "Action"
dim = 1
format = "dense"
]
]
}
}
# output the results
Output = [
action = "write"
traceLevel = 1
epochSize = 0
defaultHiddenActivity = 0.1
BrainScriptNetworkBuilder = [
modelAsTrained = BS.Network.Load ("$modelPath$")
final = modelAsTrained.outputs
]
outputNodeNames = final
reader = [
readerType = "CNTKTextFormatReader"
file = "preflopData.txt"
randomize = false
input = [
#|HandPercentage 0.5958
HandPercentage = [
dim = 1
format = "dense"
]
#|NoOfPlayersInPlay 2
NoOfPlayersInPlay = [
dim = 1
format = "dense"
]
#|HeroPosition 5
HeroPosition = [
dim = 1
format = "dense"
]
#|Pot 1.0000
Pot = [
dim = 1
format = "dense"
]
#|PlayerPosition0 0
PlayerPosition0 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize0 0.00
PlayerBettingSize0 = [
dim = 1
format = "dense"
]
#|PlayerChips0 100.00
PlayerChips0 = [
dim = 1
format = "dense"
]
#|PlayerPosition1 1
PlayerPosition1 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize1 0.00
PlayerBettingSize1 = [
dim = 1
format = "dense"
]
#|PlayerChips1 100.00
PlayerChips1 = [
dim = 1
format = "dense"
]
#|PlayerPosition2 2
PlayerPosition2 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize2 0.00
PlayerBettingSize2 = [
dim = 1
format = "dense"
]
#|PlayerChips2 100.00
PlayerChips2 = [
dim = 1
format = "dense"
]
#|PlayerPosition3 3
PlayerPosition3 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize3 0.00
PlayerBettingSize3 = [
dim = 1
format = "dense"
]
#|PlayerChips3 100.00
PlayerChips3 = [
dim = 1
format = "dense"
]
#|PlayerPosition4 4
PlayerPosition4 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize4 1.00
PlayerBettingSize4 = [
dim = 1
format = "dense"
]
#|PlayerChips4 99.00
PlayerChips4 = [
dim = 1
format = "dense"
]
#|PlayerPosition5 5
PlayerPosition5 = [
dim = 1
format = "dense"
]
#|PlayerBettingSize5 0.00
PlayerBettingSize5 = [
dim = 1
format = "dense"
]
#|PlayerChips5 100.00
PlayerChips5 = [
dim = 1
format = "dense"
]
#|Action 1
labels = [
alias = "Action"
dim = 1
format = "dense"
]
]
]
outputPath = "Preflop_Result.txt" # dump the output to this text file
]
训练文件中的数据如下:
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 1.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 1.00 |PlayerChips4 99.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 2
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 2.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 2.00 |PlayerChips4 98.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 3.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 3.00 |PlayerChips4 97.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 4.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 4.00 |PlayerChips4 96.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 5.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 5.00 |PlayerChips4 95.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 6.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 6.00 |PlayerChips4 94.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 7.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 7.00 |PlayerChips4 93.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 8.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 8.00 |PlayerChips4 92.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 9.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 9.00 |PlayerChips4 91.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 100.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 100.00 |PlayerChips4 0.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 10.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 10.00 |PlayerChips4 90.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 15.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 15.00 |PlayerChips4 85.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 20.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 20.00 |PlayerChips4 80.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 30.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 30.00 |PlayerChips4 70.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
|HandPercentage 0.5958 |NoOfPlayersInPlay 2 |HeroPosition 5 |Pot 40.00 |PlayerPosition0 0 |PlayerBettingSize0 0.00 |PlayerChips0 100.00 |PlayerPosition1 1 |PlayerBettingSize1 0.00 |PlayerChips1 100.00 |PlayerPosition2 2 |PlayerBettingSize2 0.00 |PlayerChips2 100.00 |PlayerPosition3 3 |PlayerBettingSize3 0.00 |PlayerChips3 100.00 |PlayerPosition4 4 |PlayerBettingSize4 40.00 |PlayerChips4 60.00 |PlayerPosition5 5 |PlayerBettingSize5 0.00 |PlayerChips5 100.00 |Action 1
但是输出总是如下所示:
Finished Epoch[ 1 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 5000; learningRatePerSample = 1; epochTime=0.784258s
Finished Epoch[ 2 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 10000; learningRatePerSample = 1; epochTime=0.517457s
Finished Epoch[ 3 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 15000; learningRatePerSample = 1; epochTime=0.50032s
Finished Epoch[ 4 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 20000; learningRatePerSample = 1; epochTime=0.508821s
Finished Epoch[ 5 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 25000; learningRatePerSample = 1; epochTime=0.519995s
Finished Epoch[ 6 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 30000; learningRatePerSample = 1; epochTime=0.511545s
Finished Epoch[ 7 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 35000; learningRatePerSample = 1; epochTime=0.524342s
Finished Epoch[ 8 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 40000; learningRatePerSample = 1; epochTime=0.517396s
Finished Epoch[ 9 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 45000; learningRatePerSample = 1; epochTime=0.527745s
Finished Epoch[10 of 10]: [Training] cr = -0.00000000 * 5000; errs = 0.000% * 5000; totalSamplesSeen = 50000; learningRatePerSample = 1; epochTime=0.552185s
任何人都可以帮助告诉我我的 cntk 在哪里可能是错误的吗?
您得到这个结果是因为您在二进制标签上使用了 CrossEntropyWithSoftmax
。您的问题有两种解决方案。一种解决方案是使用二维输出和 1 0
或 0 1
的标签。另一种解决方案是通过 sigmoid 传递最终输出并使用 Logistic 操作。