(新手向)从零开始使用Colab进行机器/深度学习详细教程


疫情期间只能在家实习,用笔记本做简单的机器学习还能勉强凑合,深度学习随便训练个模型要跑几天几夜。不过如果我们使用Google Colab的GPU资源,什么电脑都可以玩深度学习啦!

什么是Colab

引用官方介绍:

Colaboratory 是一个免费的 Jupyter 笔记本环境,不需要进行任何设置就可以使用,并且完全在云端运行。
借助 Colaboratory,可以编写和执行代码、保存和共享分析结果,以及利用强大的计算资源,所有这些都可通过浏览器免费使用。

Colab就是一个服务器,我们可以申请他的资源来使用。选择用colab来做深度学习的最大优点就是它强大的GPU/TPU资源,对于深度学习的网络训练,并行计算用gpu速度可比cpu快得多。

你可以在colab里通过以下命令来查看colab所能提供给我们的GPU配置:

! /opt/bin/nvidia-smi

在这里插入图片描述
这是我们所能免费使用的GPU资源,如果不能满足你的要求的的话可以购买colab pro或者去淘宝租服务器。

如何使用Colab

毕竟是谷歌的产品,首先你需要你一个谷歌账号,还要能科学上网。
我们从最简单的开始,第一,如何创建一个Colab文件。
在你的谷歌云文档里单机右键创建,如图:
在这里插入图片描述
小伙伴们第一次使用是找不到的,在 更多->关联更多应用 里搜索一下添加一下就好了。
现在创建好了一个文件,下面我讲一下它的几种使用方式。

Colab的几种使用方式

像Jupyter Notebook一样使用

对于我们来说Anaconda的Jupyter Notebook更为熟悉,它可以方便的添加代码和注释,并能及时的显示运行结果,非常适用于教学展示。这里你可以像notebook一样使用colab,甚至他们的文件格式都是一样的,你的notebook文件可以直接传到谷歌云上并用colab打开。
下面举个例子:
在这里插入图片描述
可以看到这里的使用和notebook是一样的。在熟悉colab的使用以后简单的计算我就很喜欢用colab来算,毕竟老电脑开个啥软件都慢,不如薅谷歌点羊毛。

如何使用GPU加速

进行深度学习使用GPU的话,我们必须先调好设置。如图:
在这里插入图片描述
在这里插入图片描述
在 执行代码程序->更改运行时类型->GPU 这样才能够使用GPU资源来进行我们的深度学习。
在换成GPU资源以后,你可以用以下代码测试你是否真正连接上了GPU资源:

import tensorflow as tf
device_name = tf.test.gpu_device_name()
if device_name != '/device:GPU:0':
 raise SystemError('GPU device not found')
print('Found GPU at: {}'.format(device_name))

若输出为Found GPU at: /device:GPU:0则证明你连接成功。

这里如果你用不到gpu加速的话最好不要选,因为每个账号能每天能用GPU加速的时间是有限的,我有一段时间经常用GPU,结果colab到十二个小时左右就给我自动断开了,再想连接时就会提醒你什么没有空余的GPU资源,这种情况下要么等到第二天再使用GPU或者新建一个谷歌账号接着跑。
无论是用GPU加速还是不用,运行程序时长是有上限的,一般为24个小时,不过这也不是个确定的值,会随着服务器的使用情况随时变化。

如何使用Colab跑我们的程序

我们自己写的程序或者从GitHub上拷贝的程序一般是怎么运行的呢?
Linux用户就直接敲命令就可以了,Colab也是一样的写。

挂载Google云盘
这是运行我们程序的第一步,因为Colab的运行原理实际上就是给你分配一台远程的带GPU的主机,所以它的原始路径不是你的谷歌云盘(也就是你的代码文件)所在的路径。所以第一步我们先要把谷歌云盘挂载带到那台远程主机上:

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

运行之后点击链接,然后复制一下code输入就行了。
连接上云盘以后,其实其他的操作和在Linux里就差别不大了。

执行命令
colab与notebook所不同的是,其代码框里不仅仅能执行代码,也能执行命令。
对于命令语句,我们需要在之前加上`!
比如说一些常用的命令:

import os
os.chdir("/content/gdrive/My Drive/3dunet/3DUnetCNN-master")

跳到你谷歌云盘的某个地址

ls '/content/gdrive/My Drive/3dunet/3DUnetCNN-master'

查看路径下的内容

%cd brats

进入brasts文件夹,注意这里cd命令要用%而不是!

!pip install nipype

! pip install git+https://github.com/qubvel/segmentation_models

安装所需的库

!pip install tensorflow==1.15.0

安装某个版本的库。这里需要注意一点,我们在GitHub看到的许多项目都是一段时间之前写好的,所以用的tensorflow版本可能会与colab本身自带的版本不一样。我们可以通过以下命令来查看当前colab的tensorflow版本

import tensorflow as tf

tf.__version__

我目前显示的是'2.2.0',而项目可能试用tensorflow一点几版本写的,这时候就需要通过上面的命令来更换版本,在更换完版本之后,程序往往需要重新运行。
还有一点,目前1.15.0版本的tensorflow是支持GPU运行的,好多更低的版本并不支持GPU,所以如果你降低到了比如1.5.0版本,是无法使用GPU的。

! python train.py

执行train.py文件

其实这些都跟我们的linux下操作是一样的,只不过现在放到了谷歌云盘里来执行。

项目运行
怎么运行在github上别人的项目呢?

先要把别人的项目和所需的数据集传到自己的谷歌云盘里之后,再用colab执行。
注意谷歌云盘的免费空间只有15G,如果你的数据集很大,要小心在执行的过程中可能产生一些图片从而导致空间过载,这样会报错的。可以买一个会员,十块钱不到100G,我感觉还是比百度云那种限速的好用多了.

1.挂载谷歌云,刚才讲过了

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

2.转到要处理的项目地址

import os
os.chdir("/content/gdrive/My Drive/3dclassification/3DUnetCNN-master")

3.安装好所需要的库
pip命令一个一个安装也行,不过大部分项目都有requirements.txt文件,你可以直接

! pip install -r requirements.txt

一次性安装好所有要求的库。
4.执行项目程序

! python train.py

训练网络

! python evaluate.py 

评估表现

项目编写
colab不太适合大型程序的编写,毕竟都是notebook文件。但notebook的好处就是直观,方便我们观察输出与调试,如果要写项目的话,都写在一个文件中的简单项目还好说,但如果你想调用其他文件中的函数,要先把notebook文件(.ipynb)转为py文件再调用。
在这里插入图片描述
直接在文件中下载为py文件并传到你的谷歌云盘上就好了。

  • 31
    点赞
  • 192
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
机器学习(Machine learning)是人工智能的子集,是实现人工智能的一种途径,但并不是唯一的途径。它是一门专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能的学科。大概在上世纪80年代开始蓬勃发展,诞生了一大批数学统计相关的机器学习模型。 深度学习(Deep learning)是机器学习的子集,灵感来自人脑,由人工神经网络(ANN)组成,它模仿人脑中存在的相似结构。在深度学习中,学习是通过相互关联的「神经元」的一个深层的、多层的「网络」来进行的。「深度」一词通常指的是神经网络中隐藏层的数量。大概在2012年以后爆炸式增长,广泛应用在很多的场景中。机器学习涵盖了许多不同的算法,用于解决各种类型的问题。以下是一些常见的机器学习算法: 监督学习算法:线性回归(Linear Regression)逻辑回归(Logistic Regression)决策树(Decision Trees)随机森林(Random Forests)支持向量机(Support Vector Machines)朴素贝叶斯(Naive Bayes)K近邻算法(K-Nearest Neighbors)深度学习(Deep Learning)算法,如神经网络(Neural Networks) 无监督学习算法:K均值聚类(K-Means Clustering)层次聚类(Hierarchical Clustering)高斯混合模型(Gaussian Mixture Models)主成分分析(Principal Component Analysis,PCA)关联规则学习(Association Rule Learning) 这只是机器学习领域中的一小部分算法,还有许多其他的算法和技术。根据问题的性质和数据的特点,选择适合的算法是非常重要的。不同的算法有不同的假设和适用场景,因此在学习和应用机器学习算法时,需要综合考虑问题的需求和数据的特点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值