3D活体识别使用mobilenet_v2训练模型

本文介绍了mobilenet_v2在3D活体识别中的应用,探讨了深度分离卷积与普通卷积的区别,并分享了训练和测试代码,实现了约98%的测试准确率。
摘要由CSDN通过智能技术生成

mobilenet是轻量级神经网络模型,其独特之处在于将普通的卷积操作变化为深度分离卷积操作,使其在参数数量和计算量上都大大减少,从而适用于一些性能不是很好的机器(精度略微降低,但是运行速度明显提升)。mobilenet_v1和mobilenet_v2都有创新的地方,我也在学习中。感兴趣的朋友可以看看这篇博客https://blog.csdn.net/u011974639/article/details/79199306https://blog.csdn.net/u011995719/article/details/79135818作者写的很详细。所以我这里只写一下深度分离卷积和普通卷积的具体区别,方便理解。

先看普通卷积:对于一张8x8的RGB三通道图,对其做卷积核3x3的卷积,步长为1,使用5个卷积核,输出结果是6x6x5。具体的操作是:R、G、B通道分别于卷积核1做卷积操作,然后将三个通道的值相加,输出一个特征图。5和卷积核就得到5个特征图。普通卷积会把输入的各个通道的信息整合在一起。

再来看深度分离卷积:第一步深度卷积(depthwise convolution),对于一张8x8的RGB三通道图,先用3个卷积核分别对R、G、B三个通道做卷积,需要注意的是,这里一个卷积核只处理一个通道,不像普通卷积那样,一个卷积核处理三个通道。深度卷积的输出是6x6x3。第二步逐点卷积(pointwise convolution),这里的输入就是深度卷积的输出:6x6x3。然后使用5个卷积核做1x1的卷积操作,这里的卷积操作和普通的卷积操作没区别,只是卷积核尺寸变为1x1。这么做的目的就是将之前三个通道的结果整合在一起,使得最后的输出为6x6x5。至于1x1卷积核,还有一个非常重要的作用:改变数据维度

说完这些,下面上训练代码:

# conding=utf-8

import tensorflow as tf
from datetime import datetime
from mobilenet_v2 import mobilenetv2

batch_size = 64
lr = 0.001
n_cls = 2
max_steps = 10000

def read_and_decode(filename):
    #根据文件名生成一个队列
    filename_queue =
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值