4
votes

Comment charger les données d'image du seau s3 vers le notebook Sagemaker?

Je viens de commencer à utiliser aws sagemaker. J'ai essayé d'importer des images de mon seau s3 vers un cahier de sagemaker. Mais je ne peux pas importer d'images dans le notebook. mon emplacement d'image est s3: // mon_bucket / train comment puis-je importer le dossier train du chemin donné vers mon carnet de sagemaker. J'ai passé en revue certaines des solutions ici et les solutions sont pour le fichier CSV. Toutes les images de mon compartiment S3 sont au format .jpeg.


3 commentaires

Qu'entendez-vous par «toutes les solutions ici»? Vous manquez peut-être un lien?


Bien. J'ai parcouru presque "toutes" les solutions. Au fait, si vous avez quelque chose. Ce serait très utile si vous me le disiez.


Je n'ai pas de solution en tête, je passais juste en revue les articles pour les améliorer (et augmenter leurs chances d'être résolus!). Je crois toujours que vous devriez probablement essayer de décrire un peu mieux ce que vous avez essayé spécifiquement, quelles sources vous avez utilisées pour obtenir de l'aide, etc. Sinon, les gens penseront "s'il a essayé" tout ", alors pourquoi s'embêter avec mon idée".


3 Réponses :


2
votes

Vous n'êtes pas obligé de télécharger des images du compartiment S3 vers l'instance SageMaker locale pour entraîner le modèle. Si vous essayez de les extraire pour l'exploration / l'analyse des données, vous pouvez utiliser aws cli depuis votre ordinateur portable SageMaker. Vous pouvez utiliser la commande suivante pour télécharger un exemple d'image. Cela copiera sample.jpg dans le répertoire images de votre pwd .

aws s3 cp s3: //my_bucket/train/sample.jpg ./images/sample.jpg

Essayez de consulter le repo amazon-sagemaker-examples pour apprendre à utiliser les formats d'image sur SageMaker.


2 commentaires

J'ai parcouru le repo dont vous parlez. Je me demande comment puis-je convertir mon dossier train qui contient près de 40k images au format .lst. Ils mentionnent le fichier im2rec.py pour convertir le fichier, mais au début, je dois accéder au fichier à partir de s3, non? ou Dois-je télécharger le fichier de s3 sur la machine locale, puis après le convertir à nouveau, télécharger vers s3, cela semble tellement ennuyeux et inefficace. Pouvez-vous m'éclairer davantage?


Quel algorithme utilisez-vous avec ces images? S'il s'agit de Classification d'image intégrée à SageMaker, l'entrée peut être aux formats RecordIO et image. Reportez-vous au lien du document Image Classification et aux blocs-notes pour savoir comment créer le fichier de liste en fonction du type de problème avec lequel vous travaillez, par exemple. classification binaire ou multi-étiquettes. im2rec.py s'exécute localement (sur SageMaker), ne peut donc pas prendre d'entrée du compartiment S3. Pour générer le fichier RecordIO, vous devez télécharger les images, puis utiliser l'outil im2rec.



0
votes

Quel (s) exemple (s) de bloc-notes SageMaker essayez-vous d'utiliser?

Si vos données d'entrée se trouvent dans le compartiment S3, vous n'avez pas à les télécharger sur votre instance de notebook SageMaker. Cet exemple montre que les données sont téléchargées dans le compartiment S3: https://github.com/awslabs/amazon-sagemaker-examples/blob/master/introduction_to_amazon_algorithms/imageclassification_caltech/Image-classification-fulltraining.ipynb

À des fins de formation, vous pouvez configurer s3_train dans votre compartiment de données d'entrée.

Et voici une inférence sur le format d'entrée d'image pour la classification d'image intégrée.


0 commentaires

3
votes

vous pouvez utiliser s3fs pour accéder facilement à votre bucket ainsi qu'à un fichier image qu'il contient.

from PIL import Image
import s3fs

fs = s3fs.S3FileSystem()

# To List 5 files in your accessible bucket
fs.ls('s3://bucket-name/data/')[:5]

# open it directly
with fs.open(f's3://bucket-name/data/image.png') as f:
    display(Image.open(f))


2 commentaires

Ajoutez cette ligne en haut: depuis PIL import Image


Merci! Je noterai que cela fonctionne également pour d'autres problèmes, j'ai eu des problèmes avec un fichier XML et cela l'a corrigé