loading saved keras model from gs to pydatalab

前端 未结 4 1428
情话喂你
情话喂你 2021-01-15 03:05

My keras model is saved in google storage with model.save(model_name)

I cannot load the model on pydatalab. When I save the model on my local machine, I can just ope

相关标签:
4条回答
  • 2021-01-15 03:38

    Load the file from gs storage

    from tensorflow.python.lib.io import file_io
    model_file = file_io.FileIO('gs://mybucket/model.h5', mode='rb')
    

    Save a temporary copy of the model locally

    temp_model_location = './temp_model.h5'
    temp_model_file = open(temp_model_location, 'wb')
    temp_model_file.write(model_file.read())
    temp_model_file.close()
    model_file.close()
    

    Load model saved locally

    model = load_model(temp_model_location)
    
    0 讨论(0)
  • 2021-01-15 03:40

    The following function works for retraining an already trained keras model (with new data) on gcloud machine learning platform (Thanks to Tíarnán McGrath).

    def load_models(model_file):
    
        model = conv2d_model() #the architecture of my model, not compiled yet
        file_stream = file_io.FileIO(model_file, mode='r')
        temp_model_location = './temp_model.h5'
        temp_model_file = open(temp_model_location, 'wb')
        temp_model_file.write(file_stream.read())
        temp_model_file.close()
        file_stream.close()
        model.load_weights(temp_model_location)
    
        return model
    

    For some reason, load_model from keras.models does not work for me anymore, so I have to build the model each time.

    0 讨论(0)
  • 2021-01-15 03:58

    I don't think Keras supports the TensorFlow file system which in turn knows how to read from GCS.

    You could try downloading from GCS to a local path, and then reading from that to load the model.

    0 讨论(0)
  • 2021-01-15 04:03

    OS level command can also be used just in case someone is using Colab

    To mound your google drive use

    from google.colab import drive
    drive.mount('/content/drive', force_remount=True)
    

    Code to mount GCS

    from google.colab import auth
    auth.authenticate_user()
    project_id = 'thirumalai_bucket'  #your bucket here
    !gcloud config set project {project_id}
    !gsutil ls
    

    !gsutil -m cp

    in your case:

    !gsutil -m cp gs://mybucket/model.h5  /content/drive/My\ Drive/models/ 
    

    now the file model.h5 available in drive /content/drive/My Drive/models/ move to your models directory using:

    !cd /content/drive/My\ Drive/models/
    
    load_model('model.h5')
    

    Hope this helps!

    0 讨论(0)
提交回复
热议问题