2017-01-04 2 views
0

Ich habe eine Variante des CIFAR 10 verteilt, um meine Daten zu nutzen.CNTK Distributed Crash - Beta 7

bekomme ich folgende Fehlermeldung:

Traceback (most recent call last): 
    File "CNTK_Train.py", line 158, in <module> 
    checkpoint_path = "C:/projects/RoboLabs/CognitiveServices/ML_Models/DocSuite/Doc_Classify/checkpoints/CNTK_VGG9") 
    File "CNTK_Train.py", line 80, in train_and_evaluate 
    trainer.save_checkpoint(os.path.join(checkpoint_path + "_{}.dnn".format(current_epoch))) 
    File "C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py34\lib\site-packages\cntk\trainer.py", line 138, in save_checkpoint 
    super(Trainer, self).save_checkpoint(filename, _py_dict_to_cntk_dict(external_state)) 
    File "C:\local\Anaconda3-4.1.1-Windows-x86_64\envs\cntk-py34\lib\site-packages\cntk\cntk_py.py", line 1774, in save_checkpoint 
    return _cntk_py.Trainer_save_checkpoint(self, *args) 
RuntimeError: Runtime exception 

Der Code, den ich mit Checkpoints für die Ausbildung Schleife verwenden hier:

while updated: 
    data=train_reader.next_minibatch(minibatch_size, input_map=input_map) # fetch minibatch. 
    updated=trainer.train_minibatch(data)         # update model with it 
    progress_printer.update_with_trainer(trainer, with_metric=True)  # log progress 
    epoch_index = int(trainer.total_number_of_samples_seen/epoch_size) 
    if current_epoch != epoch_index:          # new epoch reached 
     progress_printer.epoch_summary(with_metric=True) 
     current_epoch=epoch_index    
    if current_epoch % 25 == 0: 
     trainer.save_checkpoint(os.path.join(checkpoint_path + "_{}.dnn".format(current_epoch))) 

Insights begrüßen. Ich debugge aktiv.

+0

Ich denke, ich sollte die current_epoch% 25 if-Anweisung in den current_epoch! = Epoch_index schreiben, die ich teste, aber es wird eine Weile dauern, bis der Test abgeschlossen ist. Wenn das die Antwort ist, ist es ein bisschen ein zufälliger Typ Bug zu begegnen, glaube ich. –

Antwort

0

Dies scheint in der neuesten Version behoben zu sein, die Check Pointing auf andere Weise ausführt. Die Lösung besteht darin, Ihre CNTK-Version zu aktualisieren. Benutze die Session-API, die in Version 9 beginnt.

0

Ist es möglich, dass Sie im Windows-Umgebungspfadformat ausgeführt werden, das im Linux-Stil angegeben ist. Unter Windows sollte der Pfad so aussehen: "X: \ Repos \ CNTK \ Beispiele \ Image \ Klassifizierung \ ResNet \ Python \ Models \ resnet20_0.dnn". Schlagen Sie vor, dass Sie os.path.join anstelle von hardcode/oder \ in der an save_model übergebenen Pfadzeichenfolge versuchen.