补充知识:
1、torch.nn
它是pytorch框架的一个核心模块,为构建和训练神经网络提供了丰富的库
(继续补充,什么叫模块,模块就是封装好的,拿来即用)
2、模块
1、torch.nn下面有四个子模块:
nn.Parameter、nn.Module、nn.functional、nn.init
- nn.Parameter:张量子类,表示可学习参数,如weight,bias
- nn.Module:所有网络基类,管理网络属性(各种层,卷积层)
- nn.functional:函数具体实现,如卷积、池化,激活函数等
- nn.init:参数初始化方法
2、
一个module可以包含多个子module,例如卷积层、池化层、全连接层
一个module相当于一个运算,必须实现forward()函数
每个module都有8个字典去管理它的属性。
补充知识3:
类:
为什么要有类:
函数它是面向过程的。那为了向万事万物表达,就有类这种概念了。
面向过程:函数
面向对象:类
1、通用的类:
2、类的定义:
三要素:类名、属性、方法
定义一个类:然后在里面要有属性、要有行为。
3、类的命名:
驼峰命名法-组成的单词首字母大写
类定义的前后都要空两行,更清楚看到
4、类的属性:
def__init__(self,要传递的参数)
定义了四个静态属性和两个动态的方法。注意:self不能丢
类的继承
把汽车的类作为父类,现在要构造一个电动汽车的类是子类
1、创建一个子类:
class 子类名(父类名)声名继承自父类
def__init__(self,brand,model,year):
super().__init__(brand , model , year) #声名继承父类的属性,这里面不需要再加self
2、自动继承父类的所有方法
3、给子类添加属性和方法
这里面的增加了电池这个属性
对父类的方法进行重写-多态
当对父类方法进行重写之后,调用子类方法时执行的是子类里面的方法(优先)
同样一种方法在不同的子类里面有不同的表达方式,这种就叫多态。
新增的属性和方法都是围绕电池来进行的,电池本身就是一个对象,可以对它进行一个类的构造
总结
类的定义:
创建实例:
调用方法:类名.方法名(必要参数)
类的继承:
要加上super()