web-dev-qa-db-fra.com

Chargement de modèles formés avec Torch7 (.t7) dans PyTorch

J'utilise la bibliothèque Torch7 pour la mise en œuvre de réseaux de neurones. La plupart du temps, je me base sur des modèles pré-formés. Dans Lua, j'utilise la fonction torch.load pour charger un modèle enregistré en tant que fichier tort .t7. Je suis curieux de passer à PyTorch ( http://pytorch.org ) et j'ai lu les documents. Je n'ai trouvé aucune information concernant les mécanismes permettant de charger un modèle pré-formé. La seule information pertinente que j'ai pu trouver est cette page: http://pytorch.org/docs/torch.html

Mais la fonction torch.load décrite dans la page semble charger un fichier sauvegardé avec pickle. Si quelqu'un a des informations supplémentaires sur le chargement de modèles .t7 dans PyTorch, partagez-les ici. 

6
Arul

À partir de PyTorch 1.0, torch.utils.serialization est complètement supprimé. Par conséquent, personne ne peut plus importer de modèles de Lua Torch dans PyTorch. Au lieu de cela, je suggérerais d'installer PyTorch 0.4.1 à pip dans un environnement conda (afin que vous puissiez le supprimer par la suite) et d'utiliser this repo pour convertir votre modèle Lua Torch en modèle PyTorch, et pas uniquement le modèle torch.nn.legacy. vous ne pouvez pas utiliser pour la formation. Ensuite, utilisez PyTorch 1.xx pour faire ce que vous voulez. Vous pouvez également former vos modèles de torche Lua convertis à PyTorch de cette façon :)

1
Amir

La fonction correcte est load_lua:

from torch.utils.serialization import load_lua

x = load_lua('x.t7')
8
elyase