转载参考:

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的更多相关文章

  1. mysql基础操作记录

    安装mysql Mac使用homebrew安装mysql,命令行执行以下命令:brew install mysql 启动mysql服务 安装完成后执行start 命令. ➜ ~ mysql.serve ...

  2. 白嫖百度 Tesla V100 笔记(在 AI Studio 上使用 tensorflow 和 pytorch 的方法)

    登陆百度 AI Studio 并按照教程创建新项目 启动项目并进入控制台 下载 Anaconda3/Miniconda3 安装脚本 安装在 ~/work/*conda3 目录 输入命令 source ...

  3. 百度AI训练营笔记

    参加了两天百度AI训练营,简单记录一下学到的东西 一.知识图谱 知识图谱是让机器具有积累知识.运用知识的本领. 由于目前知识量很大,所以人工标注的方法无法满足,可以采用数据驱动.自底向上的方式自动构建 ...

  4. LVM基础详细说明及动态扩容lvm逻辑卷的操作记录

    LVM概念:---------------------------------------------------------------------------------------------- ...

  5. DS4700磁盘阵列的控制器微码升级操作记录(收录百度文库)

    DS4700磁盘阵列的控制器微码升级操作记录   项目介绍: 于10年3月,XX地市区/州XX分公司相继反映生产读取数据速度较之前变得非常慢,表现在:日常报表抽取数据速度明显变慢,客户打开前台页面速度 ...

  6. 了解人工智能?-百度AI

    了解人工智能? 什么是人工智能? 由人创造的"智慧能力",同样具备智慧生物的能力 耳朵=倾听=麦克风=语音识别 ASR Automatic Speech Recognition 嘴 ...

  7. 深度学习优质学习项目大放送!-AI Studio精选开源项目合集推荐

    近期 在AI Studio上发现了不少优质的开源深度学习项目,从深度学习入门到进阶,涵盖了CV.NLP.生成对抗网络.强化学习多个研究方向,还有最新的动态图,都以NoteBook的方式直接开源出来,并 ...

  8. 运维利器-ClusterShell集群管理操作记录

    在运维实战中,如果有若干台数据库服务器,想对这些服务器进行同等动作,比如查看它们当前的即时负载情况,查看它们的主机名,分发文件等等,这个时候该怎么办?一个个登陆服务器去操作,太傻帽了!写个shell去 ...

  9. MYSQL 基础操作

    1.MySQL基础操作 一:MySQL基础操作 1:MySQL表复制 复制表结构 + 复制表数据 create table t3 like t1; --创建一个和t1一样的表,用like(表结构也一样 ...

随机推荐

  1. JDBC的架构设计

    本文探讨JDBC需要解决的问题及如何解决和设计的,包括: JDBC要解决的问题 数据库事务 JDBC的架构设计 JDBC代码注意点 Spring是如何处理事务 什么是事务的传播特性 Redis事务与数 ...

  2. Google Code Jam 2020 Round1B Blindfolded Bullseye

    总结 这一题是道交互题,平时写的不多,没啥调试经验,GYM上遇到了少说交个十几发.一开始很快的想出了恰烂分的方法,但是没有着急写,果然很快就又把Test Set3的方法想到了,但是想到归想到,调了快一 ...

  3. opencv-python函数

    opencv-python读取.展示和存储图像 1.imshow函数 imshow函数作用是在窗口中显示图像,窗口自动适合于图像大小,我们也可以通过imutils模块调整显示图像的窗口的大小.函数官方 ...

  4. 20190918-03关机重启命令及修改root密码 000 006

    (1)sync   (功能描述:将数据由内存同步到硬盘中) (2)halt (功能描述:关闭系统,等同于shutdown -h now 和 poweroff) (3)reboot (功能描述:就是重启 ...

  5. 在Nginx里指定ip_hash的方式解决Tomcat集群session的问题

    据称,Tomcat集群session同步方案有以下几种方式: 1)使用tomcat自带的cluster方式,多个tomcat间自动实时复制session信息,配置起来很简单.但这个方案的效率比较低,在 ...

  6. SpringCloud Gateway高阶之Sentinel限流、熔断

    前言 为什么需要服务熔断和降级?微服务是当前业界的一大趋势,原理就是将单一职责的功能模块独立化为子服务,降低服务间的耦合,服务间互相调用.但是这样也会出现一些问题: 上图中大量微服务互相调用,存在大量 ...

  7. 【API进阶之路】用API打造一条自动化内容生产流水线

    摘要:搞定了内容审核之后,我又把抓取工具.内容审核API.文本摘要生成API串联在一起,从抓到审再到编,建立了一条自动化的内容生产流水线,编辑团队只需要做优质内容的推荐就可以了. 上周,运营部将官网上 ...

  8. 营销经验总结:如何才能提升h5游戏代入感?

    HTML5游戏拥有即点即玩,无需下载,并具备传播性广的特点,这就使得商家看到了无限商机,如何让产品更加深入人心,是游戏推广最为重要的环节.优秀的代入感才是游戏产品宣传的关键,那么有哪些要素的支撑才能确 ...

  9. Mybatis----Mapper配置文件

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...

  10. 《Java从入门到失业》第四章:类和对象(4.1):初识类和对象

    4类和对象 在第一章曾经简单介绍过,在面向对象的世界里,一切事物皆对象,当解决一个问题的时候,我们先会考虑这个问题会涉及到哪些事物,然后把事物抽象成类,当时还画了一张图如下: 从本章开始,我们一点一点 ...