web-dev-qa-db-fra.com

Pytorch - RuntimeError: [Falsification échoue à inline_container.ck:209]. Fichier non trouvé: archive / data.pkl

problème

J'essaie de charger un fichier à l'aide de PyTorch, mais de l'Erreur State archive/data.pkl n'existe pas.

Code

import torch
cachefile = 'cacheddata.pth'
torch.load(cachefile)

Sortie

---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
<ipython-input-4-8edf1f27a4bd> in <module>
      1 import torch
      2 cachefile = 'cacheddata.pth'
----> 3 torch.load(cachefile)

~/opt/anaconda3/envs/matching/lib/python3.8/site-packages/torch/serialization.py in load(f, map_location, pickle_module, **pickle_load_args)
    582                     opened_file.seek(orig_position)
    583                     return torch.jit.load(opened_file)
--> 584                 return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
    585         return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
    586 

~/opt/anaconda3/envs/matching/lib/python3.8/site-packages/torch/serialization.py in _load(Zip_file, map_location, pickle_module, **pickle_load_args)
    837 
    838     # Load the data (which may in turn use `persistent_load` to load tensors)
--> 839     data_file = io.BytesIO(Zip_file.get_record('data.pkl'))
    840     unpickler = pickle_module.Unpickler(data_file, **pickle_load_args)
    841     unpickler.persistent_load = persistent_load

RuntimeError: [enforce fail at inline_container.cc:209] . file not found: archive/data.pkl

Hypothèse

Je suppose que cela a quelque chose à voir avec le cornichon, de docs :

Ce processus de sauvegarde/chargement utilise la syntaxe la plus intuitive et implique la moindre quantité de code. Enregistrement d'un modèle de cette manière permet de sauvegarder le module entier à l'aide du module de cornichon de Python. L'inconvénient de cette approche est que les données sérialisées sont liées aux classes spécifiques et à la structure exacte utilisée lorsque le modèle est enregistré. La raison en est que le cornichon ne sauvegarde pas la classe modèle elle-même. Il enregistre plutôt un chemin vers le fichier contenant la classe, qui est utilisé pendant la période de charge. Pour cette raison, votre code peut casser de différentes manières lorsqu'il est utilisé dans d'autres projets ou après les refacteurs.

Versions

  • Version Pytorch: 1.6.0
  • Version Python: 3.8.0
3
Andy

Éteint le fichier était en quelque sorte corrompu. Après le générer à nouveau, il chargé sans problème.

3
Andy