Je souhaite importer un module personnalisé dans mon notebook jupyter dans Sagemaker. En essayant l'importation depuis Untitled1.ipynb, j'ai essayé deux structures différentes. Le premier est:
Dans le" dossier du package "se trouvaient les fichiers" cross_validation.py "et" init strong > .py ". Les commandes suivantes ont été essayées:
from package import cross_validation import package.cross_validation
La seconde est
et J'ai codé import cross_validation
Dans les deux cas, je n'obtiens aucune erreur lors de l'importation, mais je ne peux pas utiliser la classe à l'intérieur du module car je reçois le nom d'erreur Class_X n'est pas défini
J'ai aussi redémarré le notebook, juste au cas où il ne fonctionnerait toujours pas. Comment pourrais-je y arriver?
3 Réponses :
Vous pouvez ajouter un fichier __init__.py
à votre répertoire package
pour en faire un package Python. Ensuite, vous importerez les modules du package à l'intérieur de votre notebook Jupyter
from mypackage.mymodule import SomeClass, SomeOtherClass
Contenu de Notebook.ipynb
/home/ec2-user/SageMaker -- Notebook.ipynb -- mypackage -- __init__.py -- mymodule.py
Pour plus de détails, voir https://docs.python.org/3/tutorial/modules.html# packages
Merci d'utiliser Amazon SageMaker!
Si vous avez également besoin d'importer des fichiers à partir de répertoires parents, vous pouvez ajouter au chemin comme tel:
import os import sys module_path = "/home/ec2-user/SageMaker/{module_name}" if module_path not in sys.path: sys.path.append(module_path)
Ensuite, vous pouvez importer comme si vous étiez dans un environnement python normal à partir de la racine de votre projet
Si vous utilisez SageMaker Studio, vous devez faire attention au chemin.
Dans le carnet de SageMaker Studio :
! df -h
, vous verrez la ligne:
import sys sys.path.append('/root/module_name')
Et ! pwd
sera:
/ root
Il est différent du terminal bash :
Dans le terminal bash:
df -h 127.0.0.1:/200005 8.0E 1.4G 8.0E 1% /home/sagemaker-user pwd /home/sagemaker-user
Ainsi, le chemin du fichier extérieur "/ home / sagemaker-user" sera mappé dans "/ root" dans vos notebooks sous SageMaker Studio.
Ainsi, le chemin du module va changer:
127.0.0.1:/200005 8.0E 1.3G 8.0E 1% /root
Les informations détaillées peuvent refaire ceci lien