深度学习-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基础内容变量的定义。