将文件从kaggle上传到Google驱动器

时间:2019-03-13 18:40:26

标签: python google-drive-api kaggle pydrive

我正在使用kaggle训练模型,训练完成后,我想将训练后的模型上传到Google Drive,因为我找不到在本地下载模型的方法。我尝试进行

的pip install pydrive后,开始考虑使用https://pythonhosted.org/PyDrive/
    import os
    from pydrive.auth import GoogleAuth
    from pydrive.drive import GoogleDrive
    from oauth2client.client import GoogleCredentials

然后

gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

我收到此错误 ApplicationDefaultCredentialsError:应用程序默认凭据不可用。如果它们在Google Compute Engine中运行,则可用。否则,必须定义环境变量GOOGLE_APPLICATION_CREDENTIALS,指向指向定义凭据的文件。有关更多信息,请参见https://developers.google.com/accounts/docs/application-default-credentials

还有另一种方法吗?

我还没有在kaggle中提交我的文件,因为我手动停止了培训,因此提交将永远继续下去,在尝试在输出区域中提交并停止提交后,我收到了6个以上的子目录错误

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,可以将文件从Kaggle下载到Colab,然后移到Google Drive。例如,如果当前目录为/kaggle/working,而要移动的文件为processed_file.zip,则

来自Kaggle

from IPython.display import FileLink
FileLink(r'processed_file.zip')

这将生成一个链接,

https://....kaggle.net/...../processed_file.zip

来自Colab

!wget "https://....kaggle.net/...../processed_file.zip"

安装Google云端硬盘

from google.colab import drive
drive.mount('/content/drive')

移动到Google云端硬盘

!cp "/content/processed_file.zip" "/content/drive/My Drive/workspace"

答案 1 :(得分:0)

我试图做同样的事情:将我的kaggle模型保存到Google驱动器中。

调用gauth.Authorize()时,gauth对象正在寻找有效的“ gauth.credentials”。

我不是在使用“ gauth.credentials = GoogleCredentials.get_application_default()”,而是在使用:

# Try to load saved client credentials
gauth = GoogleAuth()
credential_file = 'gdrive.json'
gauth.LoadCredentialsFile(credential_file)

凭据文件是通过以下方式在您的本地计算机上创建的:

gauth = GoogleAuth()
credential_file = 'gdrive.json'
gauth.LocalWebserverAuth()
gauth.SaveCredentialsFile(credential_file)

获取凭据文件后,将其上传到kaggle,然后即可在会话中使用它。

该凭证将过期,但是我在8小时后尝试了kaggle会话,并且该凭证仍在工作。

使用以下方法检查过期时间:

gauth.credentials.token_expiry