熱載入技術:修改Python程式碼並實時檢視結果 ⛵
- 💡 作者:韓信子@ShowMeAI
- 📘 Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56
- 📘 本文地址:https://www.showmeai.tech/article-detail/406
- 📢 宣告:版權所有,轉載請聯絡平臺與作者並註明出處
- 📢 收藏ShowMeAI檢視更多精彩內容
💡 引言
在執行 Python 指令碼時,我經常發現自己忘記列印所有必要的詳細資訊來跟蹤程式碼專案的進度和中間資訊。我們經常在訓練機器學習模型時遇到各種各樣的資訊記錄問題,當然,問題不僅限於機器學習,像爬蟲等場景也需要做大量記錄,但我們經常在執行起程式碼之後才意識到忘記做一些需要記錄的資訊輸出。
如果我們暫停執行的程式碼,重新修改補充程式碼並執行,代價可能是我們已經訓練數個小時的模型引數被捨棄而重新訓練,這是非常不值當的。在python中,有另外一項技術可以解決這個問題,在本篇內容中,我們就來給大家講講python的熱載入技術。
💡 Reloading庫
📘Reloading 是一個 Python工具庫,它讓我們可以在每次迭代之前從原始碼中重新載入(或函式),我們可以修改已經執行的程式碼並向其新增更多詳細資訊,而不會丟失任何當前已執行過程。
我們可以通過以下命令安裝reloading:
pip install reloading
💦 重新載入迴圈體程式碼
假設我們有一個迴圈,它完成一個簡單的功能:每次迭代後將值減半。但我們忘記在這個迴圈中列印迭代次數了,現在想修改它。
```python from time import sleep
value = 100 iterations = 10
for iteration in range(iterations):
print(f"value = {value}")
value = value/2
sleep(2)
```
不借助reloading
,我們只能重新執行它。
但是,藉助 reloading
,我們可以重新載入迴圈體程式碼,如下所示:
```python from time import sleep from reloading import reloading
value = 100 iterations = 10
for iteration in reloading(range(iterations)):
print(f"value = {value}")
value = value/2
sleep(2)
```
動圖演示如下:
💦 重新載入修改後的函式
與重新載入迴圈體程式碼類似,我們也可以在每次迭代後重新載入函式體。以函式 half_value
為例:
```python from time import sleep
def half_value(value): print(f"value = {value}") value = value/2 return value
value = 100 iterations = 10
for iteration in range(iterations):
value = half_value(value)
sleep(2)
```
要重新載入函式體,我們可以使用 reloading
構建裝飾器。如下所示:
```python from time import sleep from reloading import reloading
@reloading def half_value(value): print(f"value = {value}") value = value/2 return value
value = 100 iterations = 10
for iteration in range(iterations):
value = half_value(value)
sleep(2)
```
修改之後,我們可以在執行時修改函式。動圖演示如下:
參考資料
推薦閱讀
- 🌍 資料分析實戰系列 :https://www.showmeai.tech/tutorials/40
- 🌍 機器學習資料分析實戰系列:https://www.showmeai.tech/tutorials/41
- 🌍 深度學習資料分析實戰系列:https://www.showmeai.tech/tutorials/42
- 🌍 TensorFlow資料分析實戰系列:https://www.showmeai.tech/tutorials/43
- 🌍 PyTorch資料分析實戰系列:https://www.showmeai.tech/tutorials/44
- 🌍 NLP實戰資料分析實戰系列:https://www.showmeai.tech/tutorials/45
- 🌍 CV實戰資料分析實戰系列:https://www.showmeai.tech/tutorials/46
- 🌍 AI 面試題庫系列:https://www.showmeai.tech/tutorials/48
本文正在參加「金石計劃 . 瓜分6萬現金大獎」
- whylogs工具庫的工業實踐!機器學習模型流程與效果監控 ⛵
- 脈脈瘋傳!2023年程式設計師生存指南;多款prompt效率加倍工具;提示工程師最全祕籍;AI裁員正在發生 | ShowMeAI日報
- 中國風?古典系?AI中文繪圖創作嚐鮮!⛵
- Python中內建資料庫!SQLite使用指南!
- Pandas中你一定要掌握的時間序列相關高階功能
- 資料科學家賺多少?資料全分析與視覺化 ⛵
- 互動式儀表板!Python輕鬆完成!⛵
- ChatGPT!我是你的破壁人;比爾·蓋茨不看好Web3與元宇宙;FIFA押中4屆世界盃冠軍;GitHub今日熱榜 | ShowMeAI資訊日報
- ChatGPT要收費了;華爾街大裁員;阿里2023十大科技趨勢;小紅書元宇宙虛擬服飾被吐槽;GitHub今日熱榜 | ShowMeAI資訊日報
- AI創業時代!這9個方向有錢途;AIGC再添霸榜應用Lensa;美團SemEval2022冠軍方法分享;醫學影象處理工具箱… | ShowMeAI資訊日報
- 噓!P站資料分析年報;各省市疫情感染進度條;愛奇藝推出元宇宙App;You推出AI聊天機器人;GitHub今日熱榜 | ShowMeAI資訊日報
- 美國公司裁員潮時間線◉科技寒冬視覺化;3份報告回顧中國開發者2022;自動駕駛下半場,誰會衝出重圍 | ShowMeAI每週通訊 #005-01.07
- 副業月入過萬?資料有話說;掃地機器人發展到哪步了;疫情後要不要重返辦公室;淘寶元宇宙直播間;GitHub今日熱榜 | ShowMeAI資訊日報
- 大戰谷歌!微軟Bing引入ChatGPT;羊了個羊40萬年薪招研發;Debian徹底移除Python2;GitHub今日熱榜 | ShowMeAI資訊日報
- 酸了!樂視工作制改為四天半;高通新年裁員;AI繪畫公司開始倒閉;網易入股張藝謀元宇宙公司;GitHub今日熱榜 | ShowMeAI資訊日報
- 要麼幹要麼滾!推特開始裁員了;深度學習產品應用·隨書程式碼;可分離各種樂器音源的工具包;Transformer教程;前沿論文 | ShowMeAI資訊日報
- 真實世界的人工智慧應用落地——OpenAI篇 ⛵
- 陽過→陽康,資料裡的時代側影;谷歌慌了!看各公司如何應對ChatGPT;兩份優質AI年報;本週技術高光時刻 | ShowMeAI每週通訊 #003-12.24
- 用魔法打敗魔法!這件毛衣讓攝像頭看不到你;兩款酷炫的AI寫作軟體;快如閃電的B站下載工具;基於擴散模型的蛋白質設計 | ShowMeAI資訊日報
- 一文讀懂!異常檢測全攻略!從統計方法到機器學習 ⛵