活动地址:CSDN21天学习挑战赛
该篇文章是基于上篇文章(实践篇1:深度学习之----LetNet之tensorflow2的实现)的补充和继续;
上篇知识点补充:
上篇文章网络详情中Param表示的是该层的输入参数:
- 卷积层参数的计算公式:
(卷积核大小*卷积核大小*卷积核通道数 + 1)*卷积核个数
例子:(上篇文章为例)
conv2d (Conv2D)(第一个卷积层):(331+1)32=320
conv2d_1 (Conv2D) (第二个卷积层):(33*32+1)*64=18496
- 全连接层计算公式:
(输入数据维度+1)*神经元个数
例子:(上篇文章为例)
输出层之前的全连接层:(64+1)*10=650
加1的原因,因为每个神经元都有一个偏置bias。
模型的编译:
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
model.compile()用法:
model.compile() 方法用于在配置训练方法时,告知训练时用的优化器、损失函数和准确率评测标准
model.compile(optimizer = 优化器, loss = 损失函数, metrics = ["准确率”])
其中:
optimizer可以是字符串形式给出的优化器名字,也可以是函数形式,使用函数形式可以设置学习率、动量和超参数
例如:
“sgd” 或者 tf.optimizers.SGD(lr = 学习率,decay = 学习率衰减率,momentum = 动量参数)
loss可以是字符串形式给出的损失函数的名字,也可以是函数形式
例如:
”mse" 或者 tf.keras.losses.MeanSquaredError()
Metrics标注网络评价指标
例如:
"accuracy" : y_ 和 y 都是数值,如y_ = [1] y = [1] #y_为真实值,y为预测值
"sparse_accuracy":y_和y都是以独热码 和概率分布表示,如y_ = [0, 1, 0], y = [0.256, 0.695, 0.048]
"sparse_categorical_accuracy" :y_是以数值形式给出,y是以 独热码给出,如y_ = [1], y = [0.256 0.695, 0.048]
今天先到这吧,下次讲一下优化器!
如有错误欢迎指正!