iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0
AI & Data

小AI大麻煩系列 第 3

【Day3】腦霧碼農的救星Dash-2

  • 分享至 

  • xImage
  •  

Dash

這是第二篇,如果要看Dash的基本用法的話請參考上篇。

接著來講 建立自己的Docs 然後再說明如何 建立自己片段文字keyword ,兩個整合起來就是利用keyword 來呼叫自己建立的Snippets。

為什麼這部分會特別提出來講,主要是在 資料分析 或在 資料前處理 的時候,常常會忘記一些細節,例如: 要執行 Scaler 但是只記得Scaler,忘記要用fit_transform,或執行 Data Augmentation 需要執行 SMOTE 時要先 Import 什麼 Package ,然後要怎麼寫,這都需要花點時間從Google找到資料,甚至一個一個result 慢慢試順便回憶之前遇到相似的狀況是怎麼處理的?

因此每次做過或者整理過後的 Functions ,我都會建議稍微再精簡整理一下,然後拆成小小的 Snippets 再放到Dash Docs裡面,之後只需要輸入 Keyword 就可以順利把整理完後的 Snippets 叫出來使用,下方就是Step by step 的教怎麼建立 Dash Docs ,然後 Snippet 的強大功能。

建立自己的Docs

首先隨手捻來先一段簡單的 plot 正副座標的圖表

import numpy as np
import matplotlib.pyplot as plt

a=np.linspace(0,5,100)

y1 = np.sin(2 * np.pi * a)
y2 = np.cos(2 * np.pi * a)

fig, ax1 = plt.subplots()
color1 , color2 = "#696D7D" ,  "#8FC0A9"

ax1.set_xlabel('time (s)')
ax1.set_ylabel('sin', color=color1)
ax1.plot(a, y1, color=color1)
ax1.tick_params(axis='y', labelcolor=color1)

ax2 = ax1.twinx()  
ax2.set_ylabel('cos', color=color2)  
ax2.plot(a, y2, color=color2)
ax2.tick_params(axis='y', labelcolor=color2)

fig.tight_layout()
plt.show()

建立自己片段文字Keyword

Control + C 先複製上面那段程式碼,然後切換到Dash 之後在 Control + N 再貼上(Control + V) 或直接使用 Control + Shift + N 就可以直接把剪貼簿中的內容直接帶入,結果就會像這樣(如果沒顏色的話Snippet Abberviation 右邊可以選擇語言)

https://ithelp.ithome.com.tw/upload/images/20220908/20151483hfM9Gbbbpu.png

並在上方的 Snippet Abbreviation 打上自己喜歡的關鍵字,這邊用 !test_2y_plot 這段來示範使用(前面有一個驚嘆號!,不過我私底下都喜歡用一小點)

所以完成就像這樣
https://ithelp.ithome.com.tw/upload/images/20220908/20151483IBxdC9RUjK.png
如果不使用要記得刪除

搜尋Keyword

如果像我一樣常常忘記裡面自己下的 Snippet Abbreviation 也可以直接在 Dash 上面 command + L 就可以在上方搜尋 keyword ,例如可以搜尋 show 就會找到我們這個程式碼

Snippet Abbreviation 的使用

現在要講到重點了就是 Snippet 的使用方式,先打開 Jupyter Notebook 然後 就先新增一個筆記本然後到可以打code的地方

https://ithelp.ithome.com.tw/upload/images/20220908/20151483HgFzjZsqaj.png

然後在Dash 打開的狀況下(背景執行或者怎樣都可以就是不能 command +Q 關掉),直接輸入 剛剛我們設定的 Snippet Abbreviation 也就是範例 : !test_2y_plot

PS:可以修改打錯,但是如果跳出或者切換地方就要重打,所以麻煩一次打對,也就是不要設太長

https://ithelp.ithome.com.tw/upload/images/20220908/20151483aDmdlM6hyM.png

輸入完後就會直接跳出剛設定好的 Snippet 這就是最簡單的使用方式。然後執行就完成了。

https://ithelp.ithome.com.tw/upload/images/20220908/20151483j2JIkSurgi.png

這個 Snippet 功能可以用在很多的地方,尤其是對於一些 Pytorch 或者 TensorFlow 的架構都可以先用這種方式整理一下存起來,以便未來要使用的時候,可以直接尻出來改就好了,相當的省時

Snippet 設定 變數

除此之外,另外有更神奇的東西是他還有變數的功能,一樣的 Snippet 然後在剛剛顏色設定那邊把中間的變數動一下手腳 (前後都要加2個底線)

  • color1 改成 __color1__
  • color2 改成 __color2__

https://ithelp.ithome.com.tw/upload/images/20220908/20151483AJQjJm5yy9.png

這邊改好之後,接下來在一樣在 Jupyter notebook 上試著打 Snippet Abbreviation 也就是範例 : !test_2y_plot

此時畫面就會出現這個就是叫你打文字,所以可以接著打 "red" 就會把__color1__ 全都變成 "red" 然後 Enter 就可以接下來改 __color2__

https://ithelp.ithome.com.tw/upload/images/20220908/20151483r6NTOpSYnn.png

這變數後續應用就直接換成自己在處理的資料的片段程式碼然後再套上變數就可以不斷地到處去使用,感覺很強,說穿了也只是記 keyword

這邊再分享一小段我自己在處理 SMOTESnippet ,只要套用 XY 就可以直接把 SMOTE 的功能寫出來,對腦霧的人來說,能少事就給推!

from imblearn.over_sampling import SMOTE

pre_X = __X__
pre_Y = __Y__

print("__X__.shape = [%d,%d]" % (pre_X.shape))
print("__Y__.shape = [%d,%d]" % (pre_X.shape))

smote_make = SMOTE(k_neighbors=5,random_state=69)
X_smote, Y_smote = smote_make.fit_resample(pre_X, pre_Y)


SMOTE_X = pd.concat([pre_X,X_smote], axis=0)
SMOTE_Y = pd.concat([pre_Y,Y_smote], axis=0)


print("SMOTE_X.shape = [%d,%d]" % (SMOTE_X.shape))
print("SMOTE_Y.shape = [%d,%d]" % (SMOTE_Y.shape))

以上說明就是 Dash 強大的 Snippet 的功能,如果有更好的軟體的話歡迎底下留言介紹,謝謝

Reference

Dash


上一篇
【Day2】腦霧碼農的救星Dash-1
下一篇
【Day4】Pytorch基本用法-1
系列文
小AI大麻煩30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言