TensorFlow模型类
TensorFlow模型类:Model类
初始化参数
___init_ __(self)//定义
call(self,input) //组装
类中包含方法:
summary:展示模型的基本情况
compile:编译时定义的优化器常常数之类的东西
fit:训练模型
save:保存模型到磁盘中
evaluate:评估模型
TensorFlow模型类:Sequential类
Sequential继承于Model
初始化参数只有一个就layout层参数
TensorFlow逐层构造LeNet模型
-
LeNet第一层:TensorFlow卷积类
初始化参数
filters 卷积核个数
kernel_size 卷积核大小
strides=(1,1) 步长
padding=‘valid’ 其他可选项 valid舍弃,same补齐
data_fotmat=None 默认channels_last
activation=tf.nn.relu 激活函数
input_shape=(32,32,1) 输入格式卷积层编码
tf.keras.layers.Conv2D(filters=6,kernel_size=(5,5),padding='valid',activation=tf.nn.relu,input_shape=(32,32,1))
-
LeNet第二层:TensorFlow池化类
初始化参数
pool_size 池化大小
strides=(1,1) 步幅
padding=‘vaild’ 其他可选项 valid舍弃,same补齐
data_format=None 默认channels_last
————————————————————
池化层类编码tf.keras.layers.AveragePooling2D(pool_size=(2,2),strides=(2,2),padding='same')
-
LeNet第三、四层:TensorFlow卷积层+池化层编码
第三第四层的卷积层和池化层的编码和第一第二层的编码是一样的,但是第三层的卷积层的卷积核filters为16
tf.keras.layers.Conv2D(filters=16,kernel_size=(5,5),padding='valid',activation=tf.nn.relu,input_shape=(32,32,1)) tf.keras.layers.AveragePooling2D(pool_size=(2,2),strides=(2,2),padding='same')
-
附加、TensorFlow扁平化类
在第三第四层之后会有一个扁平化类tf.keras.layers.Flatten()
-
LeNet第五、六、七层:TensorFlow全连接层
初始化参数
units 输出维数
activation 激活函数
strides=(1,1) 步长
padding=‘vaild’ 其他可选项 valid舍弃,same补齐
data_format=None 默认channels_last
编码tf.keras.layers.Dense(units=120,activation=tf.nn.relu) tf.keras.layers.Dense(units=84,activation=tf.nn.relu) tf.keras.layers.Dense(units=10,activation=tf.nn.softmax)
不同的是他们输出的维数是不同的,最后一个激活函数是输出最大的
到此为止LeNet模型已经构造好了
最后附上全部的模型构造代码
mode=tf.keras.models.Sequential([tf.keras.layers.Conv2D(filters=6,kernel_size=(5,5),padding='valid',activation=tf.nn.relu,input_shape=(32,32,1))
,tf.keras.layers.AveragePooling2D(pool_size=(2,2),strides=(2,2),padding='same')
,tf.keras.layers.Conv2D(filters=16,kernel_size=(5,5),padding='valid',activation=tf.nn.relu,input_shape=(32,32,1))
,tf.keras.layers.AveragePooling2D(pool_size=(2,2),strides=(2,2),padding='same')
,tf.keras.layers.Flatten()
,tf.keras.layers.Dense(units=120,activation=tf.nn.relu)
,tf.keras.layers.Dense(units=84,activation=tf.nn.relu)
,tf.keras.layers.Dense(units=84,activation=tf.nn.softmax)])
这里就构造好了一个Mode类型的模型啦