2017-01-04 8 views
0

私はCIFAR 10のバリエーションを使用してデータを利用しています。CNTK Distributed Crash - Beta 7

私は次のエラーを取得する:

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 

私がチェックポイントとトレーニングforループを使用していたコードはここにある:

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))) 

洞察力を歓迎します。私は積極的にデバッグしています。

+0

私はcurrent_epoch%if if文をcurrent_epoch内に入れるべきだと思います!= epoch_index私はテストしていますが、テストが完了するまでしばらく時間がかかります。それが答えであれば、私は信じられないほどのバグのランダムなバグです。 –

答えて

0

これは、異なる方法でチェックポインティングを実行する最新バージョンで解決されているようです。解決策は、CNTKのバージョンをアップグレードすることです。バージョン9で始まるセッションAPIを使用してください。

0

Linuxスタイルで指定されたWindows環境のパス形式で実行している可能性があります。ウィンドウ上では、パスは 'X:\ Repos \ CNTK \ Examples \ Image \ Classification \ ResNet \ Python \ Models \ resnet20_0.dnn'のようになります。 save_modelに渡されたパス文字列でハードコード/または\の代わりにos.path.joinを試すことをお勧めします。