Кажется, это связано с различием в реализации слоев нормализации между PyTorch 0.4.1 и 0.4 - первый отслеживает некоторую переменную состояния, называемую num_batches_tracked
, которую Pytorch 0.4 не ожидает.Предполагая, что есть только неожиданные ключи и нет отсутствующих ключей (что я не могу сказать наверняка, так как вы вырезали сообщение об ошибке), вы можете просто удалить посторонние и, надеюсь, модель загрузится.Поэтому попробуйте
model_dict = checkpoint['state_dict']
filtered = {
k: v for k, v in model_dict.items() if 'num_batches_tracked' not in k
}
model.load_state_dict(filtered)
. Обратите внимание, что во внутренних структурах нормализации могут быть изменения, отличные от того, что вы видите здесь, поэтому даже если это исправление подавляет исключение, модель все равно может вести себя некорректно.