百度 AI Studio 脚本任务篇,它不同于notebook任务是支持免费的, 脚本任务是需要算力卡的,更好的算力 支持四张显卡,

本文主要是介绍百度 AI Studio 脚本任务篇,它不同于notebook任务是支持免费的, 脚本任务是需要算力卡的,更好的算力 支持四张显卡,,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

aistudio 脚本任务是需要算力卡的,是收费的一个项目,估计是运行效率更高,支持4张显卡,同时计算。

# -*- coding: utf-8 -*-
"""
空白模板
"""
######  欢迎使用脚本任务,首先让我们熟悉脚本任务的一些使用规则  ######
# 详细教程请在AI Studio文档(https://ai.baidu.com/ai-doc/AISTUDIO/Ik3e3g4lt)中进行查看.
# 脚本任务使用流程:
# 1.编写代码/上传本地代码文件
# 2.调整数据集路径以及输出文件路径
# 3.填写启动命令和备注
# 4.提交任务选择运行方式(单机单卡/单机四卡/双机四卡)
# 5.项目详情页查看任务进度及日志
# 注意事项:
# 1.输出结果的体积上限为20GB,超过上限可能导致下载输出失败.
# 2.脚本任务单次任务最大运行时长为72小时(三天).
# 3.在使用单机四卡或双击四卡时可不配置GPU编号,默认启动所有可见卡;如需配置GPU编号,单机四卡的GPU编号为0,1,2
# 日志记录. 任务会自动记录环境初始化日志、任务执行日志、错误日志、执行脚本中所有标准输出和标准出错流(例如pri
# -------------------------------关于数据集和输出文件的路径问题---------------------------------
# 数据集路径
# datasets_prefix为数据集的根路径,完整的数据集文件路径是由根路径和相对路径拼接组成的。
# 相对路径获取方式:请在编辑项目状态下通过点击左侧导航「数据集」中文件右侧的【复制】按钮获取.
# datasets_prefix = '/root/paddlejob/workspace/train_data/datasets/'
# train_datasets  = datasets_prefix + '通过路径拷贝获取真实数据集文件路径'
# 输出文件路径
# 任务完成后平台会自动把output_dir目录所有文件压缩为tar.gz包,用户可以通过「下载输出」将输出结果下载到本地.
# output_dir = "/root/paddlejob/workspace/output/"
# -------------------------------关于启动命令需要注意的问题------------------------------------
# 脚本任务支持两种运行方式
# 1.shell 脚本. 在 run.sh 中编写项目运行时所需的命令,并在启动命令框中填写如 bash run.sh 的命令使脚本任务正
# 2.python 指令. 在 run.py 编写运行所需的代码,并在启动命令框中填写如 python run.py <参数1> <参数2> 的命令使
# 注:run.sh、run.py 可使用自己的文件替代,如python train.py 、bash train.sh.
# 命令示例:
# 1. python 指令
# ---------------------------------------单机四卡-------------------------------------------
# 方式一(不配置GPU编号):python -m paddle.distributed.launch run.py
# 方式二(配置GPU编号):python -m paddle.distributed.launch --gpus="0,1,2,3" run.py
# ---------------------------------------双机四卡-------------------------------------------
# 方式一(不配置GPU编号):python -m paddle.distributed.launch run.py
# 方式二(配置GPU编号):python -m paddle.distributed.launch --gpus="0,1" run.py
# 2. shell 命令
# 使用run.sh或自行创建新的shell文件并在对应的文件中写下需要执行的命令(需要运行多条命令建议使用shell命令的方
# 以单机四卡不配置GPU编号为例,将单机四卡方式一的指令复制在run.sh中,并在启动命令出写出bash run.sh
 

脚本任务说明

脚本任务执行由GPU集群作为支撑, 具有实时高速的并行计算和浮点计算能力, 有效解放深度学习训练中的计算压力, 提高处理效率.

用户可以先在Notebook项目中, 利用在线的Notebook功能, 完成代码的编写与调试, 之后在脚本任务中运行, 从而提高模型训练速度.

创建脚本任务

  1. 点击创建项目按钮 

  2. 选择创建脚本任务

页面概览

在脚本任务详情页中, 用户可以浏览自己创建的项目内容, 编辑项目名称及数据集等信息, 查看历史任务信息等.

  • 版本内容: 默认展示当前Notebook最新内容. 初始化状态为脚本任务示例代码. 用户可以手动选择提交任务时对应的历史版本.
  • 数据集: 项目所引用的数据集信息.
  • 历史任务: 每一次执行任务的记录.

代码编辑

代码编辑界面主要分为左侧: 文件管理及数据集, 和右侧: 代码编辑区及提交任务

左侧文件管理和数据集

文件管理
  • 用户可以手动创建文件/文件夹, 对文件/文件夹进行重命名或删除.
  • 其中用户可以选择指定文件, 并设置为主文件. 用作整个项目运行入口.
  • 用户也可以手动上传文件(体积上限为20MB, 体积巨大的文件请通过数据集上传).
  • 用户可以双击文件, 在右侧将新建一个tab. 用户可以进一步查看或编辑该文件的内容. (目前仅支持.py文件和.txt文件; 同时预览文件的体积上限为1MB)
数据集管理
  • 用户可以查看数据集文件, 并复制该文件的相对路径. 最后拼合模板内置绝对路径, 即可使用. 下方有详细介绍.

右侧文件预览编辑和提交任务

  • 当多个文件被打开时, 用户可以将它们逐一关闭, 当至最后一个文件时即不可关闭
  • 选中文件对应的tab即可对文件内容进行预览和编辑, 但当前仅支持.py和.txt格式的文件
  • 点击保存按钮, 会将所有文件的改动信息全部保存, 如用户不提交任务, 直接退出, 则自动保存为一个"未提交"版本
  • 提交任务前, 建议写一个备注名称, 方便未来进行不同版本代码/参数的效果比较

PaddlePaddle脚本任务说明

PaddlePaddle基于集群的分布式训练任务与单机训练任务调用方法不同。基于pserver-trainer架构的的分布式训练任务分为两种角色: parameter server(pserver)trainer.

在Fluid 中, 用户只需配置单机训练所需要的网络配置, DistributeTranspiler模块会自动地根据 当前训练节点的角色将用户配置的单机网路配置改写成pserver和trainer需要运行的网络配置:

t = fluid.DistributeTranspiler()
t.transpile(trainer_id = trainer_id,pservers = pserver_endpoints,trainers = trainers)
if PADDLE_TRAINING_ROLE == "TRAINER":# 获取pserver程序并执行它trainer_prog = t.get_trainer_program()...elif PADDLE_TRAINER_ROLE == "PSERVER":# 获取trainer程序并执行它pserver_prog = t.get_pserver_program(current_endpoint)...
  • 目前脚本任务中提供的默认环境PADDLE_TRAINERS=1(PADDLE_TRAINERS是分布式训练任务中 trainer 节点的数量)
  • 非PaddlePaddle代码请放到if PADDLE_TRAINING_ROLE == "TRAINER":分支下执行, 例如数据集解压任务

更多集群项目说明请参考PaddlePaddle官方文档

数据集与输出文件路径说明

  • 脚本任务中添加的数据集统一放到绝对路径./datasets
# 数据集文件会被自动拷贝到./datasets目录下
CLUSTER_DATASET_DIR = '/root/paddlejob/workspace/train_data/datasets/'
  • 脚本任务数据集文件路径的获取

在页面左侧数据集中点击复制数据集文件路径, 得到文件的相对路径, 例如点击后复制到剪切板的路径为data65/train-labels-idx1-ubyte.gz.

# 数据集文件相对路径
file_path = 'data65/train-labels-idx1-ubyte.gz'

真正使用的时候需要将两者拼合 train_datasets = datasets_prefix + file_path

  • 集群项目输出文件路径为./output
# 需要下载的文件可以输出到'/root/paddlejob/workspace/output'目录
CLUSTER_OUTPUT_DIR = '/root/paddlejob/workspace/output'

提交任务

点击【运行项目】后进入到任务编辑页面.

  • 提交: 点击提交会发起本次本次任务的执行. 并将代码自动保存为一个版本.
  • 任务备注: 任务自定义标识, 用于区分项目内每次执行的任务.

历史任务

历史任务页面如下所示.

任务操作:

  • 下载输出: 下载任务输出文件, 文件格式xxx(任务编号)_output.tar.gz .
  • 查看/下载日志: 在任务运行过程中, 点击"查看日志", 可以查看实时日志, 掌握运行进度. 运行结束后, 按钮转为"下载日志". 下载任务执行日志, 日志格式xxx(任务编号)_log.tar.gz .
  • 终止任务: 在任务执行过程中, 可以点击终止任务.
  • 编辑: 编辑任务对应的代码版本内容.

空间说明

  • 脚本任务空间安装包列表
PackageVersion
backports.functools-lru-cache1.5
cycler0.10.0
graphviz0.10.1
kiwisolver1.0.1
matplotlib2.2.3
nltk3.4
numpy1.15.4
opencv-python3.4.4.19
paddlepaddle-gpu1.3.1
Pillow5.3.0
pip18.1
protobuf3.1.0
pyparsing2.3.0
rarfile3.0
recordio0.1.5
requests2.9.2
scipy1.1.0
setuptools40.6.2
six1.12.0
subprocess323.5.3
wheel0.32.3

问题反馈

如在使用中遇到问题, 可以邮件至 aistudio@baidu.com

这篇关于百度 AI Studio 脚本任务篇,它不同于notebook任务是支持免费的, 脚本任务是需要算力卡的,更好的算力 支持四张显卡,的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1127958

相关文章

Spring Boot 集成 Quartz并使用Cron 表达式实现定时任务

《SpringBoot集成Quartz并使用Cron表达式实现定时任务》本篇文章介绍了如何在SpringBoot中集成Quartz进行定时任务调度,并通过Cron表达式控制任务... 目录前言1. 添加 Quartz 依赖2. 创建 Quartz 任务3. 配置 Quartz 任务调度4. 启动 Sprin

Linux之计划任务和调度命令at/cron详解

《Linux之计划任务和调度命令at/cron详解》:本文主要介绍Linux之计划任务和调度命令at/cron的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux计划任务和调度命令at/cron一、计划任务二、命令{at}介绍三、命令语法及功能 :at

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

SpringQuartz定时任务核心组件JobDetail与Trigger配置

《SpringQuartz定时任务核心组件JobDetail与Trigger配置》Spring框架与Quartz调度器的集成提供了强大而灵活的定时任务解决方案,本文主要介绍了SpringQuartz定... 目录引言一、Spring Quartz基础架构1.1 核心组件概述1.2 Spring集成优势二、J

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用