2017-04-08 8 views
2

Ich bin neu in CNTK. Indem ich das Tutorial befolgte, erstellte ich das erste Beispiel Logistic Regression mit BrainScript. Das Skript lief gut. Aber ich konnte die output.txt-Datei nicht finden, die das Ergebnis eines Output-Befehls in der BrainScript-Konfiguration sein sollte. Kann jemand helfen?CNTK Ausgabebefehl erzeugt keine Ausgabedatei

Es ist die BrainScript Konfiguration:

# CNTK Machine Learning Configuration 
# commands to run 
command=Train:Output 
modelPath = "model.dnn" 
deviceId = -1 
dimension = 2 
labelDimension = 2 
# Train command 
Train = { 
    action="train" 

    # configuration of data reading 
    reader = { 
     readerType = "CNTKTextFormatReader" 
     file = "C:\Newtera\ECM\Src\MLStudio\Data\Train_cntk_text.txt" 
     input = [ 
      features = [ 
       dim = $dimension$ 
       format = "dense" 
      ] 
      labels = [ 
       dim = 1 
       format = "dense" 
      ] 
     ] 
    } 

    # network description 
    BrainScriptNetworkBuilder = { 
     # sample and label dimensions 
     SDim = $dimension$ 
     LDim = 1 
     features = Input(SDim) 
     labels = Input(LDim) 
     # parameters to learn 
     b = Parameter(LDim, 1)  # bias 
     w = Parameter(LDim, SDim) # weights 
     # operations 
     p = Sigmoid(w * features + b) 
     lr = Logistic(labels, p) 
     err = SquareError(labels, p) 
     # root nodes 
     featureNodes = (features) 
     labelNodes = (labels) 
     criterionNodes = (lr) 
     evaluationNodes = (err) 
     outputNodes = (p) 
    } 

    # configuration parameters of the SGD procedure 
    SGD = { 
     epochSize = 0     # =0 means size of the training set 
     minibatchSize = 25 
     learningRatesPerSample = 0.04 # gradient contribution from each sample 
     maxEpochs = 50 
    } 

} 

# Output command 
Output = { 
    action="write" 
    # configuration of data reading 
    reader = { 
     readerType = "CNTKTextFormatReader" 
     file = "C:\Newtera\ECM\Src\MLStudio\Data\Test_cntk_text.txt" 
     input = [ 
      features = [ 
       dim = $dimension$ 
       format = "dense" 
      ] 
      labels = [ 
       dim = 1 
       format = "dense" 
      ] 
     ] 
    } 

    outputPath = "output.txt" 
    outputNodeNames = p 
} 

Teil CNTK Ausgänge Console:

Finished Epoch[29 of 50]: [Training] lr = 0.04359039 * 1000; err = 0.01143183 * 1000; totalSamplesSeen = 29000; learningRatePerSample = 0.039999999; epochTime=0.0379145s 
Finished Epoch[30 of 50]: [Training] lr = 0.04405872 * 1000; err = 0.01164983 * 1000; totalSamplesSeen = 30000; learningRatePerSample = 0.039999999; epochTime=0.0322998s 
Finished Epoch[31 of 50]: [Training] lr = 0.04420973 * 1000; err = 0.01164209 * 1000; totalSamplesSeen = 31000; learningRatePerSample = 0.039999999; epochTime=0.0402s 
Finished Epoch[32 of 50]: [Training] lr = 0.04337909 * 1000; err = 0.01130067 * 1000; totalSamplesSeen = 32000; learningRatePerSample = 0.039999999; epochTime=0.0333882s 
Finished Epoch[33 of 50]: [Training] lr = 0.04398178 * 1000; err = 0.01223733 * 1000; totalSamplesSeen = 33000; learningRatePerSample = 0.039999999; epochTime=0.0344874s 
Finished Epoch[34 of 50]: [Training] lr = 0.04342690 * 1000; err = 0.01140238 * 1000; totalSamplesSeen = 34000; learningRatePerSample = 0.039999999; epochTime=0.0332142s 
Finished Epoch[35 of 50]: [Training] lr = 0.04300383 * 1000; err = 0.01094254 * 1000; totalSamplesSeen = 35000; learningRatePerSample = 0.039999999; epochTime=0.042097s 
Finished Epoch[36 of 50]: [Training] lr = 0.04331203 * 1000; err = 0.01136943 * 1000; totalSamplesSeen = 36000; learningRatePerSample = 0.039999999; epochTime=0.0321645s 
Finished Epoch[37 of 50]: [Training] lr = 0.04345496 * 1000; err = 0.01147922 * 1000; totalSamplesSeen = 37000; learningRatePerSample = 0.039999999; epochTime=0.0332394s 
Finished Epoch[38 of 50]: [Training] lr = 0.04424128 * 1000; err = 0.01172341 * 1000; totalSamplesSeen = 38000; learningRatePerSample = 0.039999999; epochTime=0.0327771s 
Finished Epoch[39 of 50]: [Training] lr = 0.04669956 * 1000; err = 0.01262951 * 1000; totalSamplesSeen = 39000; learningRatePerSample = 0.039999999; epochTime=0.0397526s 
Finished Epoch[40 of 50]: [Training] lr = 0.04297209 * 1000; err = 0.01148758 * 1000; totalSamplesSeen = 40000; learningRatePerSample = 0.039999999; epochTime=0.0333094s 
Finished Epoch[41 of 50]: [Training] lr = 0.04553096 * 1000; err = 0.01266350 * 1000; totalSamplesSeen = 41000; learningRatePerSample = 0.039999999; epochTime=0.0336593s 
Finished Epoch[42 of 50]: [Training] lr = 0.04287576 * 1000; err = 0.01152806 * 1000; totalSamplesSeen = 42000; learningRatePerSample = 0.039999999; epochTime=0.0344351s 
Finished Epoch[43 of 50]: [Training] lr = 0.04388394 * 1000; err = 0.01206369 * 1000; totalSamplesSeen = 43000; learningRatePerSample = 0.039999999; epochTime=0.0342201s 
Finished Epoch[44 of 50]: [Training] lr = 0.04223350 * 1000; err = 0.01105061 * 1000; totalSamplesSeen = 44000; learningRatePerSample = 0.039999999; epochTime=0.0337745s 
Finished Epoch[45 of 50]: [Training] lr = 0.04207988 * 1000; err = 0.01140505 * 1000; totalSamplesSeen = 45000; learningRatePerSample = 0.039999999; epochTime=0.0338235s 
Finished Epoch[46 of 50]: [Training] lr = 0.04261599 * 1000; err = 0.01158317 * 1000; totalSamplesSeen = 46000; learningRatePerSample = 0.039999999; epochTime=0.0400027s 
Finished Epoch[47 of 50]: [Training] lr = 0.04326449 * 1000; err = 0.01164270 * 1000; totalSamplesSeen = 47000; learningRatePerSample = 0.039999999; epochTime=0.0339331s 
Finished Epoch[48 of 50]: [Training] lr = 0.04225180 * 1000; err = 0.01148765 * 1000; totalSamplesSeen = 48000; learningRatePerSample = 0.039999999; epochTime=0.0399052s 
Finished Epoch[49 of 50]: [Training] lr = 0.04173198 * 1000; err = 0.01124937 * 1000; totalSamplesSeen = 49000; learningRatePerSample = 0.039999999; epochTime=0.0338758s 
Finished Epoch[50 of 50]: [Training] lr = 0.04399340 * 1000; err = 0.01202173 * 1000; totalSamplesSeen = 50000; learningRatePerSample = 0.039999999; epochTime=0.0330397s 

COMPLETED. 

Antwort

1

Das outputpath Element ist nicht der Weg, an dem die Ausgabedatei geschrieben werden, sondern nur die Präfix davon. Das Suffix wird basierend auf dem Namen des Netzwerkknotens erstellt, den Sie ausgeben möchten. Wenn Sie also den Knoten p ausgeben, würden Sie die Ergebnisse in der Datei output.txt.p

erwarten. Derzeit geben Sie jedoch nicht an, welcher Knoten ausgegeben werden soll. Sie können das tun, indem Sie outputNodeNames=p zu Ihrer Konfiguration hinzufügen.

+0

Danke für die Hilfe. Ich füge "outputNodeNames = p" im Output-Befehl der Konfiguration hinzu. Die Datei "output.txt.p" wird weiterhin nicht erstellt. Fehle ich etwas? –

+0

Können Sie die letzten 20 Zeilen posten, die CNTK auf der Konsole ausgibt? –

+0

CNTK wird an die Konsole gesendet. Ich benutze CNTK 2.0rc1. –