google colaboratory,重量下载(导出保存的模型) [英] google colaboratory, weight download (export saved models)

查看:130
本文介绍了google colaboratory,重量下载(导出保存的模型)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Keras库创建了一个模型,并将该模型另存为.json及其权重带有.h5扩展名.如何将其下载到我的本地计算机上?

I created a model using Keras library and saved the model as .json and its weights with .h5 extension. How can I download this onto my local machine?

要保存模型,我遵循了链接

to save the model I followed this link

推荐答案

这对我有用! 使用PyDrive API

This worked for me !! Use PyDrive API

!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')})

相同的重量

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')})

现在,检查您的Google驱动器.

Now, check your google drive.

下次运行时,尝试重新加载砝码

On next run, try reloading the weights

# 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')

一种更好的新方法(更新后)...忘记了以前的方法(也可行)

# Load the Drive helper and mount
from google.colab import drive
drive.mount('/content/drive')

系统将提示您进行授权 在浏览器中转到此URL: account.google.com/o/oauth2/auth?client_id = .....

You will be prompted for authorization Go to this URL in a browser: something like : accounts.google.com/o/oauth2/auth?client_id=.....

从链接中获取身份验证代码,将您的授权代码粘贴到空格中

obtain the auth code from the link, paste your authorization code in the space

然后您可以正常使用驱动器作为自己的磁盘

直接保存权重,甚至直接保存完整模型

Save weights or even the full model directly

model.save_weights('my_model_weights.h5')
model.save('my_model.h5')

使用一种更好的方法,使用回调函数,它可以自动检查每个时期的模型是否比保存最好的模型好,并保存迄今为止验证损失最大的模型.

Even a Better way, use call backs, which automatically checks if the model at each epoch achieved better than the best saved one and save the one with best validation loss so far.

my_callbacks = [
    EarlyStopping(patience=4, verbose=1),
    ReduceLROnPlateau(factor=0.1, patience=3, min_lr=0.00001, verbose=1),
    ModelCheckpoint(filepath = filePath + 'my_model.h5', 
    verbose=1, save_best_only=True, save_weights_only=False) 
    ]

然后在模型中使用回调.fit

And use the call back in the model.fit

model.fit_generator(generator = train_generator,  
                    epochs = 10,
                    verbose = 1,
                    validation_data = vald_generator,
                    callbacks = my_callbacks)

即使使用先前的用户定义的损失函数,您也可以稍后加载

You can load it later, even with a previous user defined loss function

from keras.models import load_model
model = load_model(filePath + 'my_model.h5', 
        custom_objects={'loss':balanced_cross_entropy(0.20)})

这篇关于google colaboratory,重量下载(导出保存的模型)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆