2017-01-17 7 views
1

Я новичок в CNTK, я пытаюсь написать cntk для подготовки данных для игры в техасский холдем. Однако, независимо от того, как я изменил свой конфигурационный файл cntk, я получаю одинаковый результат для каждого учебного материала.CNTK всегда возвращает errorRate is 0

Вот мой 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 ошибается?

ответ

2

Вы получаете этот результат, потому что используете двоичную метку CrossEntropyWithSoftmax. Есть два решения вашей проблемы. Одно из решений состоит в том, чтобы иметь двухмерный выход и метку, которая либо 1 0, либо 0 1. Другое решение - передать окончательный выход через сигмоид и использовать операцию Logistic.

+0

Спасибо Nikos, после того, как я начал читать учебник по python, я понимаю, что неправильно понимаю классификацию в CNTK. Ваш ответ подтверждает, что я был неправ. Большое спасибо за то, что помогли мне. :) – user1494907