【问题标题】:upload files from kaggle to google drive将文件从 kaggle 上传到谷歌驱动器
【发布时间】:2019-08-04 13:23:57
【问题描述】:

我正在使用 kaggle 训练模型,一旦训练完成,我想将训练后的模型上传到谷歌驱动器,因为我无法找到在本地下载模型的方法。我在做 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 个子目录的错误

【问题讨论】:

    标签: python google-drive-api kaggle pydrive


    【解决方案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"
    

    【讨论】:

    • 它不再工作了。 kaggle 为文件抛出 404
    【解决方案2】:

    我也在尝试做同样的事情:将我的 kaggle 模型保存到谷歌驱动器。

    当您调用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 2013-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多