前言
在这个数据驱动的时代,机器学习与人工智能正以前所未有的速度重塑着我们的世界,从优化日常生活的便捷应用到推动尖端科学研究的重大突破。然而,面对这一波技术浪潮,许多有志于探索数据科学和AI领域的学习者、研究人员往往受限于高昂的计算资源需求和复杂的开发环境配置。正是在这样的背景下,Google Colaboratory(简称Colab)应运而生,如同一座架设在云端的智慧桥梁,它不仅极大地降低了进入这一领域的门槛,还重新定义了我们协作与学习的方式。
正文
Colab介绍
Google Colaboratory(简称Colab)是由Google开发的一个基于云端的交互式笔记本环境,专为促进机器学习、深度学习以及数据科学项目的设计与协作而打造。以下是Colab的一些核心特点和优势:
- 免费的云端资源:Colab向所有用户提供免费的计算资源,包括CPU、GPU(图形处理器)甚至是TPU(张量处理单元),这对于处理计算密集型任务,如训练大型机器学习模型,尤为有用。
- 无需配置:用户可以直接在浏览器中编写和执行代码,无需进行复杂的软件安装或环境配置。这大大降低了入门门槛,使得研究人员和学生能够快速开始项目。
- 集成Google云端硬盘:Colab与Google云端硬盘紧密集成,允许用户轻松地存储和共享笔记本文件。这意味着你可以直接在Colab中访问和操作云端硬盘上的数据,便于管理和版本控制。
- 交互式编程环境:基于Jupyter Notebook,Colab提供了一个富文本格式的交互式环境,支持实时代码编辑、运行以及结果展示。用户可以结合Markdown文本、代码、图表和可视化结果来创建动态文档。
- 预装常用库:Colab预装了诸如NumPy、Pandas、Matplotlib等数据处理和可视化库,以及TensorFlow、PyTorch等深度学习框架,用户可以立即开始使用这些工具而无需单独安装。
- 灵活共享与合作:Colab笔记本可以轻松共享给其他用户,支持实时协作,非常适合团队项目、教学材料分享或是公开演示。
- 硬件加速选项:用户可以根据需要选择使用CPU、GPU或TPU资源,这对于加速计算任务特别是涉及大量矩阵运算和并行处理的场景至关重要。
让我们来掀开Google Colaboratory的神秘面纱
第一步
首先,你需要会科学上网
你需要一个合法的Google账号才能够使用colab (具体Google的注册教程可以私信博主)
第二步
接着,你需要在colab界面登录你的Google账号,然后就会进入到这个界面
里面含有使用教学
还有丰富的数据科学、机器学习等相关教学,有兴趣可以多学习学习。
第三步
我们点击文件
点击在云端硬盘中新建一个笔记本
就会来到你的私人云端工作台
它基于Jupyter Notebook构建,这意味着你在一个网页界面上编写代码、查看输出、制作文档和图表。用户界面直观友好,分为以下几部分:
- 菜单栏:提供保存、导出、打印等文件操作,以及运行时管理、帮助等功能。
- 工具栏:包含快捷操作,如插入代码单元格、文本单元格,以及运行、停止代码等。
- 代码单元格:用户在这里输入代码,支持多种编程语言,但主要针对Python。通过Shift+Enter快捷键运行单元格。
- 输出区域:显示代码执行的结果,包括文本、图像、图表和错误信息。
初步使用
colab最迷人的莫属于它的免费使用GPU或TPU。对于需要高性能计算的任务,如深度学习模型训练,选择“Runtime” -> “Change runtime type”来切换到GPU或TPU。
关于内存和存储方面,虽然具体容量可能随时间调整,但通常Colab会提供足够的RAM(例如12GB或更高)和临时存储空间来处理大多数项目。注意,存储在Colab中的数据并非永久保存,但可以通过挂载Google云端硬盘来解决这一问题。
Colab预装了许多常用的Python库,如numpy、pandas、matplotlib、scikit-learn、TensorFlow、PyTorch等,用户无需手动安装即可直接使用。
如果需要使用未预装的库,可以直接使用!pip install命令在代码单元格中安装。
介绍完了colab的一些基本特性,我们现在运用代码调用大模型实现一个简单的cv
与在IDE写python项目一样,我们也需要给我们的云端计算机下载transformers库
!pip install transformers
下载完成后,我们引入这个库
from transformers.pipelines import SUPPORTED_TASKS
从transformers库中导入了pipelines模块中的SUPPORTED_TASKS。pipelines模块提供了预定义的模型接口,使得用户能更容易地执行多种NLP任务,而SUPPORTED_TASKS则是一个集合或字典,列出了该库当前支持的所有任务类型。
from transformers import pipeline
detetor = pipeline('zero-shot-object-detection',model='google/owlvit-base-patch32')
这段代码导入了Transformers库中的pipeline函数,该函数允许用户便捷地使用预训练模型执行多种自然语言处理和计算机视觉任务。创建了一个pipeline实例,专门用于执行“零样本对象检测”任务。这项任务意味着模型在没有见过特定类别的对象的训练样本的情况下,也能够尝试识别这些类别中的对象。这里是通过指定以下参数实现的:
'zero-shot-object-detection': 这个字符串指定了pipeline要执行的任务类型,即零样本对象检测。model='google/owlvit-base-patch32': 这个参数指定了要使用的预训练模型,使用的模型是google/owlvit-base-patch32,这是来自Google的OwlViT模型的一个变体,它基于Vision Transformer (ViT) 架构,特别适合处理视觉相关的任务,如图像分类、目标检测等。patch32指的是模型输入图像时分割成的块的大小。
接着我们从网络上request一张图片
# 网络请求
import requests
# python 图片处理库
from PIL import Image
url = "https://unsplash.com/photos/oj0zeY2Ltk4/download?ixid=MnwxMjA3fDB8MXxzZWFyY2h8MTR8fHBpY25pY3xlbnwwfHx8fDE2Nzc0OTE1NDk&force=true&w=640"
img = Image.open(requests.get(url, stream=True).raw)
img
接着我们使用之前创建的detector对象(即零样本对象检测的pipeline)来对一个图像(由变量img表示)进行对象检测,并预测图像中是否含有特定类别的物品。
predictions = detetor(
img,
candidate_labels=["hat", "sunglasses", "book"]
)
predictions
我们就得到了帽子、墨镜、书的大致在图像中的位置
最后调用图像绘制库,将帽子、墨镜、书的位置圈出来
from PIL import ImageDraw
draw = ImageDraw.Draw(img)
for prediction in predictions:
box = prediction["box"]
label = prediction["label"]
score = prediction['score']
xmin, ymin, xmax, ymax = box.values()
draw.rectangle((xmin, ymin, xmax, ymax),outline="red", width=1)
draw.text((xmin, ymin),f"{label}:{round(score,2)}",fill="red")
img
这样我们一个最最最最最最简单的cv就通过colab完成了!
总结
Google Colab是一个革命性的云端服务平台,它巧妙地融合了强大计算能力与无缝的交互式编程环境,让每个人都能在不负担任何费用的前提下,享受到近乎无限的计算资源和一触即发的创新灵感。想象一下,在不安装任何软件的情况下,仅凭一个网络浏览器,就能编写代码、运行复杂算法、训练机器学习模型,甚至直接在你的Google云端硬盘上存储和分享你的工作——这一切,Colab都使之成为现实。无论是对机器学习充满好奇的新手,还是寻求高效研发工具的专业人士,Colab都将是您不可多得的伙伴,伴随您在智能科技的海洋中扬帆远航。
求点赞评论收藏,有问题随时私信博主!