深度學習-01-作為"箱子"的變量
????????本文是《深度學習入門2-自製框架》 的學習筆記,記錄自己學習心得,以及對重點知識的理解。如果內容對你有幫助,請支持正版,去購買正版書籍,支持正版書籍不僅是尊重作者的辛勤勞動,也是鼓勵更多優秀作品問世。
????????當前筆記內容主要為:步驟1 作為"箱子"的變量 章節的相關理解。
????????書籍總共分為5個階段,每個階段分很多步驟,最終是一步一步實現一個深度學習框架DeZero?。例如前兩個階段為:
- 第 1 階段共包括 10 個步驟 。 在這個階段,將創建自動微分的機制
- 第 2 階段,從步驟11-24,該階段的主要目標是擴展當前的 DeZero ,使它能夠執行更復雜的計算 ,使它能 夠處理接收多個輸入的函數和返回多個輸出的函數
1.什么是變量
"箱子 " 就是變量,里面可以存放數據。
變量的要點可以總結如下 :
? 箱子和數據是不同的東兩?
? 箱子里 可以放數據(=賦值)?
? 往"箱子"里看一看就能知道數據是什么(=引用)
2.python 變量定義
在 Python 中,變量定義非常簡單,不需要像其他語言那樣顯式聲明數據類型。你只需要使用變量名,然后用等號 = 賦值即可。
- ?? ?Python 是動態類型語言,這意味著你不需要在定義變量時指定數據類型。Python 會根據你賦的值自動推斷變量類型。
- ?? ?變量名必須以字母或下劃線 _ 開頭,后面可以跟字母、數字或下劃線。
- ?? ?Python 變量名區分大小寫,例如 age 和 Age 是兩個不同的變量。
3.實現Variable 類
實現 DeZero 的變量
# 這是一個示例 Python 腳本。import numpy as npclass Variable:def __init__(self, data):self.data = data
說明:
python 類名首字母大寫(Python 的 PEP8 編碼規范)
上述代碼:讓 Variable 類作為"箱子"使用, 實際的數據被保留在 Variable 的 data 里
4.Numpy 多維數組操作
有了上面的變量定義,現在我們思考怎么用基礎數據來構造 Variable 變量
data = np.array(1.0)
x = Variable(data)
print(x.data)
x.data = np.array(3.0)
print(x.data)?? ?
輸出:
1.0
3.0
將numpy 對象初始化成一個Variable 變量
4.項目代碼
本節項目代碼如下:
# 這是一個示例 Python 腳本。# 按 Shift+F10 執行或將其替換為您的代碼。
# 按 雙擊 Shift 在所有地方搜索類、文件、工具窗口、操作和設置。
import numpy as npclass Variable:def __init__(self, data):self.data = data# 按間距中的綠色按鈕以運行腳本。
if __name__ == '__main__':print("-----------Variable 測試案例-----------")data = np.array(1.0)x = Variable(data)print(x.data)x.data = np.array(3.0)print(x.data)## testprint("-----------numpy 數組案例-----------")x = np.array(1)print(x.ndim)x = np.array([1,2,3])print(x.ndim)x = np.array([[1,2,3],[4,5,6]])print(x)print(x.ndim)
輸出結果:
C:\Users\Administrator\AppData\Local\Programs\Python\Python39-32\python.exe D:/pyworkspace/dezero-01/step01.py
-----------Variable 測試案例-----------
1.0
3.0
-----------numpy 數組案例-----------
0
1
[[1 2 3][4 5 6]]
2進程已結束,退出代碼0
5.總結
本節主要定義以及完成了深度學習框架-DeZero基礎內容變量的定義。