Распределенный сбой CNTK — бета-версия 7

Я использую вариант CIFAR 10, распространяемый для использования моих данных.

Я получаю следующую ошибку:

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

Код, который я использую для цикла обучения с контрольными точками, находится здесь:

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

Инсайты приветствуются. Я активно отлаживаю.


person David Crook    schedule 04.01.2017    source источник
comment
Я думаю, что мне следует поместить оператор current_epoch % 25 if в оператор current_epoch != epoch_index, который я тестирую, но для завершения теста потребуется некоторое время. Если это ответ, то я верю, что это ошибка случайного типа.   -  person David Crook    schedule 04.01.2017


Ответы (2)


Возможно ли, что вы работаете в формате пути среды Windows, указанном в стиле Linux. В Windows путь должен выглядеть примерно так: «X:\Repos\CNTK\Examples\Image\Classification\ResNet\Python\Models\resnet20_0.dnn». Предложите попробовать os.path.join вместо hardcode / или \ в строке пути, переданной в save_model.

person Sayan Pathak    schedule 04.01.2017

Кажется, это решено в последней версии, которая выполняет контрольные точки другим способом. Решение состоит в том, чтобы обновить версию CNTK. Используйте API-интерфейс сеанса, который начинается в версии 9.

person David Crook    schedule 24.01.2017