jjzjj

谷歌Colab(免费算力平台)——正确打开方式(常用操作指导tips)

ychdata 2023-06-21 原文

简介

谷歌的colab自带一块GPU,配合谷歌云盘的存储,是一个很好的个人深度学习模型训练的平台。

初次接触colab会有很有碰壁和卡壳的地方,这篇博客会给出一些colab的常用操作指导,包括:数据集存放,GPU开启,jupyter指令和路径等等内容。

谷歌云盘的网址
colab的地址

数据集

使用colab首先要理解他的正确打开方式。在colab中,数据和代码都是存储在谷歌硬盘中(存储中心),而colab提供算力和操作界面。
所以,我们上传我们的代码和数据时,是上传到谷歌硬盘中。并且实时修改文件内容,同样也是在谷歌硬盘操作。

然后,在使用colab时,colab挂载我们的谷歌云盘,就能够看到我们上传的数据了。

需要注意的内容时,在colab中大规模的读写文件的速度比本地要慢。所以,当我们要对文件进行处理时,可以选择在本地处理好再上传到谷歌硬盘。也就是说colab只用做训练。(但是GPU还是香)

使用GPU

第二个操作指南是关于如何打开GPU。

如上图,选择colab中的“修改”,再选择笔记本设置,就可以看到是否启用GPU的选项。

Jupyter常用命令

第三个操作指导是关于jupyter常用命令,包括:常用的命令行命令(处理文件、进入目录)python相关命令(pip,运行python文件)
Jupyter默认是运行python代码指令的,如果要运行命令行命令通常是在前面加上!。

比如:查看GPU配置

!/opt/bin/nvidia-smi

挂载云盘

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

pip安装第三方库

!pip install numpy

运行python文件

!python train.py

进入到目录中,值得注意的是,这里的前缀符号是%

%cd /content/drive/MyDrive/yolov5-master/

删除文件夹(文件夹中有文件)

!rm -r labels

查看当前目录下属的文件

!ls

路径问题

路径问题是我们跑模型,跑代码经常要碰到的问题。
很多时候,我们兴致勃勃从github或者其他地方,拿到代码和数据集,准备自己跑一下的时候,因为路径不匹配导致代码跑不了。
在写路径时,我们可以用相对路径,也可以用绝对路径。

绝对路径

在colab中,我们的数据和代码放在挂载的谷歌硬盘中。绝对路径一般是:/content/drive/ 。比如,下图红框中的“yolov5-master”,其绝对路径就是:/content/drive/MyDrive/yolov5-master/

/content/drive/MyDrive/yolov5-master/

相对路径

我们可以先进入到对应的文件夹下(用下面的cd命令)
,再使用相对路径。

%cd /content/drive/MyDrive/yolov5-master/

如果我们进入到了MyDrive这个文件夹,我们可以用一下两种方式表示yolov5-master文件夹的相对路径。

yolov5-master
./yolov5-master

有关谷歌Colab(免费算力平台)——正确打开方式(常用操作指导tips)的更多相关文章

  1. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  2. ruby - 如何以所有可能的方式将字符串拆分为长度最多为 3 的连续子字符串? - 2

    我试图获取一个长度在1到10之间的字符串,并输出将字符串分解为大小为1、2或3的连续子字符串的所有可能方式。例如:输入:123456将整数分割成单个字符,然后继续查找组合。该代码将返回以下所有数组。[1,2,3,4,5,6][12,3,4,5,6][1,23,4,5,6][1,2,34,5,6][1,2,3,45,6][1,2,3,4,56][12,34,5,6][12,3,45,6][12,3,4,56][1,23,45,6][1,2,34,56][1,23,4,56][12,34,56][123,4,5,6][1,234,5,6][1,2,345,6][1,2,3,456][123

  3. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  4. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  5. ruby-on-rails - 如何使用 instance_variable_set 正确设置实例变量? - 2

    我正在查看instance_variable_set的文档并看到给出的示例代码是这样做的:obj.instance_variable_set(:@instnc_var,"valuefortheinstancevariable")然后允许您在类的任何实例方法中以@instnc_var的形式访问该变量。我想知道为什么在@instnc_var之前需要一个冒号:。冒号有什么作用? 最佳答案 我的第一直觉是告诉你不要使用instance_variable_set除非你真的知道你用它做什么。它本质上是一种元编程工具或绕过实例变量可见性的黑客攻击

  6. ruby-on-rails - 正确的 Rails 2.1 做事方式 - 2

    question的一些答案关于redirect_to让我想到了其他一些问题。基本上,我正在使用Rails2.1编写博客应用程序。我一直在尝试自己完成大部分工作(因为我对Rails有所了解),但在需要时会引用Internet上的教程和引用资料。我设法让一个简单的博客正常运行,然后我尝试添加评论。靠我自己,我设法让它进入了可以从script/console添加评论的阶段,但我无法让表单正常工作。我遵循的其中一个教程建议在帖子Controller中创建一个“评论”操作,以添加评论。我的问题是:这是“标准”方式吗?我的另一个问题的答案之一似乎暗示应该有一个CommentsController参

  7. ruby - 我可以将我的 README.textile 以正确的格式放入我的 RDoc 中吗? - 2

    我喜欢使用Textile或Markdown为我的项目编写自述文件,但是当我生成RDoc时,自述文件被解释为RDoc并且看起来非常糟糕。有没有办法让RDoc通过RedCloth或BlueCloth而不是它自己的格式化程序运行文件?它可以配置为自动检测文件后缀的格式吗?(例如README.textile通过RedCloth运行,但README.mdown通过BlueCloth运行) 最佳答案 使用YARD直接代替RDoc将允许您包含Textile或Markdown文件,只要它们的文件后缀是合理的。我经常使用类似于以下Rake任务的东西:

  8. ruby-on-rails - 使用 config.threadsafe 时从 lib/加载模块/类的正确方法是什么!选项? - 2

    我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co

  9. ruby - 调用其他方法的 TDD 方法的正确方法 - 2

    我需要一些关于TDD概念的帮助。假设我有以下代码defexecute(command)casecommandwhen"c"create_new_characterwhen"i"display_inventoryendenddefcreate_new_character#dostufftocreatenewcharacterenddefdisplay_inventory#dostufftodisplayinventoryend现在我不确定要为什么编写单元测试。如果我为execute方法编写单元测试,那不是几乎涵盖了我对create_new_character和display_invent

  10. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

随机推荐