J'ai créé un modèle à l'aide de la bibliothèque Keras et l'ai enregistré au format .json et ses poids avec l'extension .h5. Comment puis-je le télécharger sur ma machine locale?
pour enregistrer le modèle, j'ai suivi cette link
Cela a fonctionné pour moi !! Utilisez l'API PyDrive
!pip install -U -q PyDrive
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
# 1. Authenticate and create the PyDrive client.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
# 2. Save Keras Model or weights on google drive
# create on Colab directory
model.save('model.h5')
model_file = drive.CreateFile({'title' : 'model.h5'})
model_file.SetContentFile('model.h5')
model_file.Upload()
# download to google drive
drive.CreateFile({'id': model_file.get('id')})
Même chose pour les poids
model.save_weights('model_weights.h5')
weights_file = drive.CreateFile({'title' : 'model_weights.h5'})
weights_file.SetContentFile('model_weights.h5')
weights_file.Upload()
drive.CreateFile({'id': weights_file.get('id')})
Maintenant, vérifiez votre lecteur Google.
Lors de la prochaine exécution, essayez de recharger les poids
# 3. reload weights from google drive into the model
# use (get shareable link) to get file id
last_weight_file = drive.CreateFile({'id': '1sj...'})
last_weight_file.GetContentFile('last_weights.mat')
model.load_weights('last_weights.mat')
Voici une solution qui a fonctionné pour moi:
Configuration de l'authentification b/w Google Colab et votre lecteur:
Pas:
Collez le code comme ci-dessous
-Ce processus générera deux URL pour l'authentification à compléter, où vous devrez copier les jetons et les coller dans la barre fournie
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse Fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
Une fois cette authentification effectuée, utilisez les codes suivants pour établir la connexion:
!mkdir -p drive
!google-drive-ocamlfuse drive
Maintenant, pour voir la liste des fichiers dans votre Google Drive:
!ls drive
Pour enregistrer la sortie du modèle Keras sur Drive, le processus est identique à celui du stockage sur le lecteur local:
-Exécuter le modèle Keras comme d'habitude
Une fois le modèle formé, indiquez que vous souhaitez stocker vos sorties de modèle (.h5 et json) dans le dossier app
de votre Google Drive:
model_json = model.to_json()
with open("drive/app/model.json", "w") as json_file:
json_file.write(model_json)
# serialize weights to HDF5
model.save_weights("drive/app/model_weights.h5")
print("Saved model to drive")
Vous trouverez les fichiers dans les dossiers respectifs de Google Drive, à partir desquels vous pouvez télécharger, comme indiqué ci-dessous:
Essaye ça
from google.colab import files
files.download("model.json")
Pour télécharger le modèle sur le système local, le code suivant fonctionnerait - Téléchargement du fichier json:
model_json = model.to_json()
with open("model1.json","w") as json_file:
json_file.write(model_jason)
files.download("model1.json")
Télécharger des poids:
model.save('weights.h5')
files.download('weights.h5')
files.download
ne vous permet pas de télécharger directement des fichiers volumineux. Une solution de contournement consiste à enregistrer vos poids sur Google drive, en utilisant l'extrait de code ci-dessous. Il suffit de changer le filename.txt
pour votre fichier weights.h5
# Install the PyDrive wrapper & import libraries.
# This only needs to be done once in a notebook.
!pip install -U -q PyDrive
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
# Authenticate and create the PyDrive client.
# This only needs to be done once in a notebook.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
# Create & upload a file.
uploaded = drive.CreateFile({'title': 'filename.csv'})
uploaded.SetContentFile('filename.csv')
uploaded.Upload()
print('Uploaded file with ID {}'.format(uploaded.get('id')))
save_path = saver.save (sess, "data/dm.ckpt") "session" est obsolète.
Vous pouvez exécuter ce qui suit après la formation.
saver = tf.train.Saver()
save_path = saver.save(session, "data/dm.ckpt")
print('done saving at',save_path)
Ensuite, vérifiez l'emplacement où les fichiers ckpt ont été enregistrés.
import os
print( os.getcwd() )
print( os.listdir('data') )
Enfin, téléchargez les fichiers avec poids!
from google.colab import files
files.download( "data/dm.ckpt.meta" )