轉載參考:
一、基礎
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