01 百度 AI Studio 基础操作记录(一) Notebook
转载参考:
一、基础
1、新建文件:
可以使用命令, !cat <<newfile > newfile.py 在项目空间内直接创建文件, 之后双击进行编辑。 如下图所示:
!cat <<newfile > newfile.py
2、上传Notebook:
可以使用自己本地的ipynb文件取代当前默认的Notebook(只要格式合法即可)
3、Notebook快捷键:
和原生notebook快捷键基本一致
快捷键分成两种模式:
- 命令行模式
- 编辑模式
4、暗黑模式:
官方暂时不支持,可以使用浏览器插件:
- Chrome下请搜索: 夜间眼睛
- Firefox下请搜索: Dark Reader
效果如图:
5、Notebook中使用shell命令:
通过在Shell命令前添加! (感叹号), 就可以执行部分Shell命令。 包括诸如 !pip install这样的命令。 不过, !apt-get这种可能引发用户进一步操作的命令是不支持的。
下面是两个示例:
# 查看当前挂载的数据集目录 !ls /home/aistudio/data/ |
运行时长: 390毫秒
结束时间: 2020-05-01 18:36:26
data269
#显示当前路径 !pwd |
/home/aistudio
6、使用pip来安装需要的package(不支持apt-get等用户会进一步操作的命令):
例如:
!pip install jupyterthemes |
查看当前环境中安装的package:
!pip list --format=columns |
#以及使用下方命令查看预装软件 !apt list |
7、持久化安装:
如果需要进行持久化安装, 需要使用持久化路径, 如下方代码示例:
!mkdir /home/aistudio/external-libraries !pip install beautifulsoup4 -t /home/aistudio/external-libraries |
同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可:
import sys sys。path。append('/home/aistudio/external-libraries') |
8、使用Git命令来同步代码(暂时需要Paddle1.4.1版以上):
%cd work/ |
/home/aistudio/work
!git clone https://github。com/PaddlePaddle/Paddle。git #Paddle官方模型 |
可以看到同步后work目录下出现一个Models文件夹,官方文档是多了一个models文件夹
本人实测多了一个Paddle文件夹
也可以活用Git命令进行本地代码管理
注意: Paddle的Git体积过大, 同步会非常迟缓。 建议使用浏览器插件, 对指定目录进行下载, 然后上传至AI Studio的项目空间中。 Chrome版
9、文件下载:
文件下载分为2种:
- 单一文件下载
- 文件夹打包下载
注:但文件夹下载可能耗时比较久, 每次只能下载一个文件夹内容, 也可能需要较长时间等待。
10、Python代码调试与执行:
Notebook执行Python代码的原理和传统IDE略有不同。
- 传统IDE, 当点击Run按钮时, 编译器/解释器开始构建一个进程。 用户通过单步执行/设置断点进行代码调试和变量监控。 当代码出错, 或用户点击Stop按钮时, 进程被杀死, 资源回收。
- 而Notebook, 一旦启动, 就是开始创建一个"进程"(kernel)。 每一个Cell, 都是一个天然的断点。 当代码出错, 或用户点击Stop按钮时, "进程"通常也不会被杀死。
- 因此如果代码陷入死循环等情况, 需要用户手动关闭并重启该"进程"。
- 此外, Notebook的Cell是可以随意颠倒顺序来执行的。 这点和传统IDE有很大不同。
- 作为前端的Notebook, 与后端的进程(kernel), 建立有一个Session。 未来本平台将支持terminal功能。 也就可以同时支持多个Session来控制kernel。
11、变量监控:
因为Notebook的Cell是可以随意颠倒顺序来执行的, 因此本平台自带"变量监控"和"运行历史"。 方便用户了解当前代码运行状态。
通过重启环境并清空输出, 可以消除已生成的变量监控。
二、Magic命令
Magic命令是Notebook的高级用法了。 可以运行一些特殊的指令。 Magic 命令的前面带有一个或两个百分号(% 或 %%),分别代表行 Magic 命令和单元格 Magic 命令。行 Magic 命令仅应用于编写 Magic 命令时所在的行,而单元格 Magic 命令应用于整个单元格。
举个例子:
1、显示全部可用的Magic命令
#显示全部可用的Magic命令 %lsmagic |
列出magic命令列表如下:
Available line magics:
%alias
%alias_magic
%autoawait
%autocall
%automagic
%autosave
%bookmark
%cat
%cd
%clear
%colors
%conda
%config
%connect_info
%cp
%debug
%dhist
%dirs
%doctest_mode
%ed
%edit
%env
%gui
%hist
%history
%killbgscripts
%ldir
%less
%lf
%lk
%ll
%load
%load_ext
%loadpy
……
%who
%who_ls
%whos
%xdel
%xmode
Available cell magics:
%%!
%%HTML
%%SVG
%%bash
%%capture
%%debug
%%file
%%html
%%javascript
%%js
%%latex
%%markdown
%%perl
%%prun
……
%%system
%%time
%%timeit
%%writefile
Automagic is ON, % prefix IS NOT needed for line magics.
2、使用Magic命令来统计运行时长
#使用Magic命令来统计运行时长
import random
%%timeit
prize = 0
for i in range(100):
roll = random.randint(1, 6)
if roll%2 == 0:
prize += roll
else:
prize -= 1
175 µs ± 2.12 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)
3、直接嵌入可视化内容
甚至还可以直接嵌入可视化内容, 例如%matplotlib inline:
%matplotlib inline
%config InlineBackend.figure_format = 'retina'
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0,1,300)
for w in range(2,6,2):
plt.plot(x, np.sin(np.pi*x)*np.sin(2*w*np.pi*x))
这里需要注意的是, 当前技术架构局限, 一个Cell里面只能输出一张图片. 如果输出多张图片, 可能会有显示异常的问题
4、设置环境变量
%env:设置环境变量
使用该命令, 可以在不必重启Kernel的情况下管理notebook的环境变量
# Running %env without any arguments
# lists all environment variables
# The line below sets the environment
# variable OMP_NUM_THREADS
%env OMP_NUM_THREADS=4
env: OMP_NUM_THREADS=4
5、%run: 运行python代码
使用%run 可以运行.py格式的python代码
当然是用!python也是可以的
我在项目空间中上传了一个.py文件, 里面只有一行print代码。 我们执行一下看看:
%run work/SampleOfRun.py
It's a demo code written in file SampleOfRun.py
!python work/SampleOfRun.py
It's a demo code written in file SampleOfRun.py
6、%%writefile and %pycat: 导出cell内容/显示外部脚本的内容
AI Studio当前支持一定格式文件的预览和处理, 如果您的格式比较特殊, 尚未支持的话, 不妨试试这两个命令。
- %%writefile magic可以把cell的内容保存到外部文件里
- 而%pycat则可把外部文件展示在Cell中
%%writefile SaveToPythonCode.py
from math import sqrt
for i in range(2,10):
flag=1
k=int(sqrt(i))
for j in range(2,k+1):
if i%j==0:
flag=0
break
if(flag):
print(i)
Writing SaveToPythonCode.py
因为没有指定路径,所以文件被保存到了根目录下。但至少it works。
我们再来尝试从中读文件内容
%pycat SaveToPythonCode.py
更多Magic命令可以点击这里查询 Magic命令
三、关于快速查看某个对象/方法/接口的用法
在要查询的对象前输入?或??并执行即可。 单问号是普通信息, 双问号是详细信息。前提: 该对象方法已经被正确导入(import)
示例:
import paddle
import paddle.fluid
?paddle.fluid.layers.conv3d
Object `paddle.fluid.layers.conv3d` not found.
四、关于变量监控
你可以通过修改内核选项ast_note_interactivity,使得Jupyter对独占一行的所有变量或者语句都自动显示,这样你就可以马上看到多个语句的运行结果了。
示例:
!pip install pydataset
Looking in indexes: https://pypi.mirrors.ustc.edu.cn/simple/
Collecting pydataset
Downloading https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/4f/15/548792a1bb9caf6a3affd61c64d306b08c63c8a5a49e2c2d931b67ec2108/pydataset-0.2.0.tar.gz (15.9MB)
|████████████████████████████████| 15.9MB 99kB/s eta 0:00:011…………
…………………………
…………………………
…………………………
Successfully built pydataset
Installing collected packages: pydataset
Successfully installed pydataset-0.2.0
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
from pydataset import data
quakes = data('quakes')
quakes.head()
quakes.tail()
initiated datasets repo at: /home/aistudio/.pydataset/
lat |
long |
depth |
mag |
stations |
|
996 |
-25.93 |
179.54 |
470 |
4.4 |
22 |
997 |
-12.28 |
167.06 |
248 |
4.7 |
35 |
998 |
-20.13 |
184.20 |
244 |
4.5 |
34 |
999 |
-17.40 |
187.80 |
40 |
4.5 |
14 |
1000 |
-21.59 |
170.56 |
165 |
6.0 |
119 |
五、关于调试代码
Notebook自带一个调试器, 叫The Python Debugger (pdb),我们来看看它是如何工作的。
# 对, 它也是依赖Magic命令启动的.
# 理论上pdb是可以通过脚本形式来启动. 但是在Notebook中不行, 会造成阻断
%pdb
def reverse(x: int) -> int:
inputnumber = x.__str__()
reversedStr = inputnumber[::-1]
strOriLen = len(reversedStr)
result = list()
flag = 1
for i in range(0, strOriLen):
if i == (strOriLen -1) and reversedStr[i] == '-' :
flag = -1
else:
result.append(reversedStr[i])
outputs = ''.join(result)
outputInt = int(outputs)
outputInt = outputInt * flag
if outputInt > pow(2,31)-1 or outputInt < -1 * pow(2,31):
outputInt = 0
return outputInt
print(reverse(134))
Automatic pdb calling has been turned OFF
431
01 百度 AI Studio 基础操作记录(一) Notebook的更多相关文章
- mysql基础操作记录
安装mysql Mac使用homebrew安装mysql,命令行执行以下命令:brew install mysql 启动mysql服务 安装完成后执行start 命令. ➜ ~ mysql.serve ...
- 白嫖百度 Tesla V100 笔记(在 AI Studio 上使用 tensorflow 和 pytorch 的方法)
登陆百度 AI Studio 并按照教程创建新项目 启动项目并进入控制台 下载 Anaconda3/Miniconda3 安装脚本 安装在 ~/work/*conda3 目录 输入命令 source ...
- 百度AI训练营笔记
参加了两天百度AI训练营,简单记录一下学到的东西 一.知识图谱 知识图谱是让机器具有积累知识.运用知识的本领. 由于目前知识量很大,所以人工标注的方法无法满足,可以采用数据驱动.自底向上的方式自动构建 ...
- LVM基础详细说明及动态扩容lvm逻辑卷的操作记录
LVM概念:---------------------------------------------------------------------------------------------- ...
- DS4700磁盘阵列的控制器微码升级操作记录(收录百度文库)
DS4700磁盘阵列的控制器微码升级操作记录 项目介绍: 于10年3月,XX地市区/州XX分公司相继反映生产读取数据速度较之前变得非常慢,表现在:日常报表抽取数据速度明显变慢,客户打开前台页面速度 ...
- 了解人工智能?-百度AI
了解人工智能? 什么是人工智能? 由人创造的"智慧能力",同样具备智慧生物的能力 耳朵=倾听=麦克风=语音识别 ASR Automatic Speech Recognition 嘴 ...
- 深度学习优质学习项目大放送!-AI Studio精选开源项目合集推荐
近期 在AI Studio上发现了不少优质的开源深度学习项目,从深度学习入门到进阶,涵盖了CV.NLP.生成对抗网络.强化学习多个研究方向,还有最新的动态图,都以NoteBook的方式直接开源出来,并 ...
- 运维利器-ClusterShell集群管理操作记录
在运维实战中,如果有若干台数据库服务器,想对这些服务器进行同等动作,比如查看它们当前的即时负载情况,查看它们的主机名,分发文件等等,这个时候该怎么办?一个个登陆服务器去操作,太傻帽了!写个shell去 ...
- MYSQL 基础操作
1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...
随机推荐
- 社区布道师揭秘消息中间件技术内幕,撰写MQ架构设计与实现原理
RocketMQ是什么 RocketMQ是由阿里捐赠给Apache的一款分布式.队列模型的开源消息中间件,经历了淘宝双十一的洗礼. RocketMQ的特性 RocketMQ基本概念 Client端 P ...
- 今天来学习一下MySQl的 临时表,变量,行转列,预处理的一些相关技术的使用!
先来简单了解一下MySQL数据库有意思的简介 MySQL这个名字,起源不是很明确.一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上, 而且不管怎样,MySQL AB创始 ...
- 【JAVA】生成一个32位的随机数。防止重复,保留唯一性
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, QQ986945193 微博:http://weibo.com/mcxiaobing import ...
- SpringCloud系列之Nacos+Dubbo应用篇
目录 前言 项目版本 项目说明 项目结构 集成Dubbo2.6.x 支付模块 用户模块 集成Dubbo2.7.x 支付模块 用户模块 测试验证 参考资料 系列文章 前言 本文在前篇文章<Spri ...
- Java使用POI的SXSSFWorkbook与HSSFWorkbook导出复杂表头
一.HSSFWorkbook与SXSSFWorkbook的区别: HSSFWorkbook是对Excel2003以前的版本进行操作的,即后缀名为.xls SXSSFWorkbook时对Excel200 ...
- 14_Python语法示例(面向对象)
1.自己写一个Student类,此类的对象有属性name, age, score, 用来保存学生的姓名,年龄,成绩 # 1)写一个函数input_student读入n个学生的信息,用对象来存储这些信息 ...
- Activiti7 网关(包含网关)
什么是包含网关? 包含网关可以看做是排他网关和并行网关的结合体,和排他网关一样,你可以在外出顺序流上定义条件,包含网关会解析他们,但是主要的区别是包含网关可以选择多于一条顺序流,这和并行网关是一样的 ...
- 判断Java程序是否在jar中运行
URL url = TextRenderer.class.getResource(""); String protocol = url.getProtocol(); boolean ...
- leetcode刷题-60第k个队列
题目 给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列. 按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: "123""132& ...
- python连接websocket wss
def websocket_wss(): try: wss = create_connection(wss_url, timeout=10) if wss.status == 101: wss.sen ...