这篇日记解读FaceNet的深度卷积网络NN2,并使用Tensorflow实现。
NN2网络的结构如下图所示:
NN2网络几乎和Inception V1一样,所以如果没有Inception V1的基础,依靠上面这张表格使用Tensorflow实现代码还是有点困难的。
这里先介绍inception模块。
inception模块是由谷歌发明的,并在2014年ILSVRC比赛中获得第一名。其主要解决两个问题:
1. 实现不同卷积核的自动选择,也就是说让网络自行决定是使用1*1卷积核,还是3*3,或是5*5,或者是否加池化层
2. 使用了1*1卷积,将时间复杂度,也就是浮点运算数大大降低。
inception模块如下图所示:
总共有4个分支,第一个分支是1*1卷积,第二个分支是实现3*3卷积,第三个分支是实现5*5卷积,第4个分支是实现最大池化。
在每一个分支里