我编写了一个脚本,在每次迭代后将我的模型和训练示例上传到 Google Drive,以防发生崩溃或任何阻止笔记本运行的情况,如下所示:
drive_path = 'drive/My Drive/Colab Notebooks/models/'
if path.exists(drive_path):
shutil.rmtree(drive_path)
shutil.copytree('models', drive_path)
每当我检查我的 Google 云端硬盘时,垃圾箱中的数十个已删除模型文件夹都会占用几 GB 空间,我必须手动删除它们。
唯一的功能是google.colab.drive
似乎是mount
就是这样。
根据本教程 https://automatetheboringstuff.com/chapter9/, shutil.rmtree()
永久删除目录,但显然它不适用于云端硬盘。
可以使用以下命令在 Google Colab 内执行此操作pydrive https://pythonhosted.org/PyDrive/index.html模块。我建议您首先将不需要的文件和文件夹移至垃圾箱(通常通过在代码中删除它们),然后,在您认为有必要的任何时候(例如,您想要释放一些空间来节省新 DL 项目的权重),通过编写以下几行代码来清空垃圾箱。
为了永久清空 Google 云端硬盘的垃圾箱,请在 Google Colab 笔记本中编写以下行代码:
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
my_drive = GoogleDrive(gauth)
输入身份验证代码并创建 GoogleDrive 类的有效实例后,写入:
for a_file in my_drive.ListFile({'q': "trashed = true"}).GetList():
# print the name of the file being deleted.
print(f'the file "{a_file['title']}", is about to get deleted permanently.')
# delete the file permanently.
a_file.Delete()
如果您不想使用我的建议并希望永久删除云端硬盘中的特定文件夹,则可能需要进行更复杂的查询并处理fileId
, parentId
,以及在查询 Google Drive API 时,云端硬盘中的文件或文件夹可能有多个父文件夹。
了解更多信息:
- 您可以找到更复杂(但典型)查询的示例,here https://developers.google.com/drive/api/v2/search-files.
- 你可以找到一个例子检查文件是否位于特定文件夹中, here https://developers.google.com/drive/api/v2/reference/parents/get#examples.
- 这一声明表明Google 云端硬盘中的文件和文件夹都可以有多个父文件夹通过阅读本文,可能会变得更好、更深入地理解post https://kloudless.com/blog/2019/02/08/is-google-drive-a-tree-or-a-graph/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)