01 百度 AI Studio 基礎操作記錄(一) Notebook


轉載參考:

AI Studio基本操作(一) Notebook篇

   

一、基礎

   

1、新建文件:

可以使用命令, !cat <<newfile > newfile.py 在項目空間內直接創建文件, 之后雙擊進行編輯。 如下圖所示:

   

!cat <<newfile > newfile.py

   

   

2、上傳Notebook

可以使用自己本地的ipynb文件取代當前默認的Notebook(只要格式合法即可)

   

   

3Notebook快捷鍵:

和原生notebook快捷鍵基本一致

快捷鍵分成兩種模式:

  • 命令行模式
  • 編輯模式

   

   

   

4、暗黑模式:

官方暫時不支持,可以使用瀏覽器插件:

  • Chrome下請搜索: 夜間眼睛
  • Firefox下請搜索: Dark Reader

效果如圖:

   

5Notebook中使用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

syspathappend('/home/aistudio/external-libraries')

   

   

8、使用Git命令來同步代碼(暫時需要Paddle1.4.1版以上):

%cd work/

/home/aistudio/work

   

!git clone https://githubcom/PaddlePaddle/Paddlegit  #Paddle官方模型

   

   

   

可以看到同步后work目錄下出現一個Models文件夾,官方文檔是多了一個models文件夾

   

本人實測多了一個Paddle文件夾

   

也可以活用Git命令進行本地代碼管理

注意: Paddle的Git體積過大, 同步會非常遲緩。 建議使用瀏覽器插件, 對指定目錄進行下載, 然后上傳至AI Studio的項目空間中。 Chrome版

   

9、文件下載:

文件下載分為2種:

  • 單一文件下載
  • 文件夾打包下載

   

:但文件夾下載可能耗時比較久, 每次只能下載一個文件夾內容, 也可能需要較長時間等待。

   

10Python代碼調試與執行:

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(16)

    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 -1and 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM