Codalab平台学习笔记

发布时间:2024年01月18日

简介

Codalab是一个用于复现深度学习研究的协作平台,由斯坦福大学和微软合作开发。其核心理念是在云端运行机器学习实验,像jupyter notebook一样在数字实验室中管理实验,同时可以发布实验的 worksheet 以便其他人可以复现实验结果。

Colab官网展示的三个步骤为:

  1. 上传文件:首先将代码和数据集文件上传至平台。
    image.png

  2. 进行实验:运行代码,进行训练或者测试。

image.png

  1. 发布结果:将实验结果进行发布,以供他人复现查看。

image.png

快速开始

账号注册

首先,我们需要现在Codalab上注册一个自己的账号。注册连接点这里:link

image.png
填入个人信息后需要到邮箱进行验证激活账号。

接下来,我们根据官方文档教程https://codalab-worksheets.readthedocs.io/en/latest/examples/quickstart/ 来熟悉一下这个平台的使用。

配置本地环境

首先,在服务器上新建一个conda环境来安装Codalab的本地环境。

这里,我首先新建了一个python环境并取名叫codalab,设置python版本为3.9.7

(base) jxqi@han-server-01:~$ conda create -n codalab python==3.9.7
Collecting package metadata (current_repodata.json): done
Solving environment: done
//------------
//------------略去中间输出
//------------
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate codalab
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(base) jxqi@han-server-01:~$ conda activate codalab

激活环境,然后,使用下述命令安装

pip install codalab -U 

安装完成后,输入以下命令进行登录。

(codalab) jiexing@jiexingdeMacBook-Pro ~ % cl work

\


Welcome to the CodaLab CLI!

\


Your CodaLab configuration and state will be stored in: /Users/jiexing/.codalab

\


Requesting access at https://worksheets.codalab.org

Username: jxqi

Password: 

Currently on worksheet: https://worksheets.codalab.org/worksheets/0x05454fab67ff46e2a5e5850d70ebd348 (home-jxqi)

cl work命令的意思就是切换工作表(worksheet),默认的工作表指向主页工作表 (home-<username>)。

这里有一个比较坑的点是我用实验室服务器无论怎么设置都无法正常连接。以上命令是在我的MacBook Pro上才运行成功的。后来又试了不是我们实验室的服务器,也正常。这个问题比较奇怪,以后有时间再详细探究。

上传文件

这里,我们以官方提供的github repo作为示例来上传文件。
首先,将该repo进行clone。

(codalab) protago@Alienware008AMD8647567023:~/jxqi/codalab_study$ git clone https://github.com/codalab/worksheets-examples.git
Cloning into 'worksheets-examples'...
remote: Enumerating objects: 336, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (11/11), done.
remote: Total 336 (delta 0), reused 8 (delta 0), pack-reused 325
Receiving objects: 100% (336/336), 6.28 MiB | 33.66 MiB/s, done.
Resolving deltas: 100% (139/139), done.
(codalab) protago@Alienware008AMD8647567023:~/jxqi/codalab_study$ ls
worksheets-examples
(codalab) protago@Alienware008AMD8647567023:~/jxqi/codalab_study$ cd worksheets-examples/
(codalab) protago@Alienware008AMD8647567023:~/jxqi/codalab_study/worksheets-examples$ ls
00-quickstart  01-nli  README.md
(codalab) protago@Alienware008AMD8647567023:~/jxqi/codalab_study/worksheets-examples$ cd 00-quickstart/
(codalab) protago@Alienware008AMD8647567023:~/jxqi/codalab_study/worksheets-examples/00-quickstart$ ls
code  data  README.md
(codalab) protago@Alienware008AMD8647567023:~/jxqi/codalab_study/worksheets-examples/00-quickstart$ cat data/lines.txt
e
d
c
b
a
(codalab) protago@Alienware008AMD8647567023:~/jxqi/codalab_study/worksheets-examples/00-quickstart$ cat code/sort.py
import sys
for line in sorted(sys.stdin.readlines()):
    print line,

接着,我们使用cl upload命令上传文件和代码。

(codalab) protago@Alienware008AMD8647567023:~/jxqi/codalab_study/worksheets-examples/00-quickstart$ cl upload data
Preparing upload archive...
Uploading data.tar.gz (0xb99596ebaec44f2fb124506dacf9ccce) to https://worksheets.codalab.org
Sent 0.00MiB [0.00MiB/sec]
0xb99596ebaec44f2fb124506dacf9ccce

在网页上进行刷新,可以看到代码和数据文件夹已经上传好了。

image.png

image.png

image.png

运行代码

首先确保已经进入到了worksheets-examples/00-quickstart这个目录下,

(codalab) protago@Alienware007AMD8647613679:~/jxqi/codalab_study$ ls
worksheets-examples
(codalab) protago@Alienware007AMD8647613679:~/jxqi/codalab_study$ cd worksheets-examples/
(codalab) protago@Alienware007AMD8647613679:~/jxqi/codalab_study/worksheets-examples$ ls
00-quickstart  01-nli  README.md
(codalab) protago@Alienware007AMD8647613679:~/jxqi/codalab_study/worksheets-examples$ cd 00-quickstart/
(codalab) protago@Alienware007AMD8647613679:~/jxqi/codalab_study/worksheets-examples/00-quickstart$ ls
code  data  README.md
(codalab) protago@Alienware007AMD8647613679:~/jxqi/codalab_study/worksheets-examples/00-quickstart$ cl run :data :code 'python code/sort.py < data/lines.txt'
0xf8519125dc2a4a3bb335a9b83b912f7b
(codalab) protago@Alienware007AMD8647613679:~/jxqi/codalab_study/worksheets-examples/00-quickstart$ 

注意:因为原代码是python2格式的,print会报错,所以需要修改一下code中的代码。修改内容为:

import sys
for line in sorted(sys.stdin.readlines()):
    print(line)

image.png

在这个命令中,:data?和:code指定了具体的依赖,当CodaLab执行命令时,它将把这两个依赖单独作为bundle,且当前命令运行成功后,将输出唯一的bundle id。bundle 的名字就是你上传的文件/目录的名字,可以加 -n 参数来修改。

后面?python code/sort.py < data/lines.txt则是要运行的代码。运行时,平台会自动将?datacode对应的 bundle 挂载过来,作为本次运行的依赖。

参考

  1. Tutorial: Quickstart,https://codalab-worksheets.readthedocs.io/en/latest/examples/quickstart/
  2. codalab环境搭建及新手教程,https://zhuanlan.zhihu.com/p/372557325
文章来源:https://blog.csdn.net/u011426236/article/details/135679073
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。