参考

文章链接(这篇文章有些图已经挂了。。)

SiameseNetwork又叫孪生网络---详细的介绍可以看这篇文章

网络的基本架构如图

下面直接介绍:

1.数据集

数据集采用的是AT&T面部数据集,里面是一些以pgm后缀的图像文件,可以用Sublime Text打开

是P5格式的,宽度为92,高度为112

用python进行可视化可以参考下面的代码

from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
import ospath="F:/Facial-Siamese/Siamese-Networks/data/faces/testing/s7/"
files=os.listdir(path)for i in files:im = Image.open(path+i)im.show()i=i[:len(i)-4]#print(i)im.save(path+i+".bmp")

可视化的同时,我给转换成了bmp文件,其实两种格式的文件都可以用来训练。

2.网络架构

采用CNN架构,每次卷积后进行了批量归一化(BatchNorm),然后dropout

class SiameseNetwork(nn.Module):def __init__(self):super(SiameseNetwork, self).__init__()self.cnn1 = nn.Sequential(nn.ReflectionPad2d(1),nn.Conv2d(1, 4, kernel_size=3),nn.ReLU(inplace=True),nn.BatchNorm2d(4),nn.ReflectionPad2d(1),nn.Conv2d(4, 8, kernel_size=3),nn.ReLU(inplace=True),nn.BatchNorm2d(8),nn.ReflectionPad2d(1),nn.Conv2d(8, 8, kernel_size=3),nn.ReLU(inplace=True),nn.BatchNorm2d(8),)self.fc1 = nn.Sequential(nn.Linear(8*100*100, 500),nn.ReLU(inplace=True),nn.Linear(500, 500),nn.ReLU(inplace=True),nn.Linear(500, 5))def forward_once(self, x):output = self.cnn1(x)output = output.view(output.size(0), -1)output = self.fc1(output)return outputdef forward(self, input1, input2):output1 = self.forward_once(input1)output2 = self.forward_once(input2)return output1, output2

3.对比损失

class ContrastiveLoss(torch.nn.Module):def __init__(self, margin=2.0):super(ContrastiveLoss, self).__init__()self.margin = margindef forward(self, output1, output2, label):euclidean_distance = F.pairwise_distance(output1, output2)loss_contrastive = torch.mean((1-label) * torch.pow(euclidean_distance, 2) +(label) * torch.pow(torch.clamp(self.margin - euclidean_distance, min=0.0), 2))

4.训练

batch=64

epoch=200

用.bmp类型的图片训练

5.测试

用10对图像进行测试

原作者给的代码有些错误,我改了一些地方,如有问题请多加指正。代码链接。

谷歌盘:权重链接

百度盘:权重链接

SiameseNetwork实现面部识别(基于PyTorch)相关推荐

  1. 基于pytorch量化感知训练(mnist分类)--浮点训练vs多bit后量化vs多bit量化感知训练效果对比

    基于pytorch量化感知训练–浮点训练vs多bit后量化vs多bit量化感知训练效果对比 代码下载地址:下载地址 灰色线是量化训练,橙色线是后训练量化,可以看到,在 bit = 2.3 的时候,量化 ...

  2. 基于pytorch后量化(mnist分类)---浮点训练vs多bit后量化vs多bit量化感知训练效果对比

    基于pytorch后量化(mnist分类)-浮点训练vs多bit后量化vs多bit量化感知训练效果对比 代码下载地址:下载地址 试了 bit 数为 1-8 的准确率,得到下面这张折线图: 发现,当 b ...

  3. 基于pytorch的模型稀疏训练与模型剪枝示例

    基于pytorch的模型稀疏训练与模型剪枝示例 稀疏训练+模型剪枝代码下载地址:下载地址 CIFAR10-VGG16BN Baseline Trained with Sparsity (1e-4) P ...

  4. 艾伦人工智能研究院开源AllenNLP,基于PyTorch轻松构建NLP模型

    艾伦人工智能研究院(AI2)开源AllenNLP,它是一个基于PyTorch的NLP研究库,利用深度学习来进行自然语言理解,通过处理低层次的细节.提供高质量的参考实现,能轻松快速地帮助研究员构建新的语 ...

  5. 基于PyTorch,如何构建一个简单的神经网络

    本文为 PyTorch 官方教程中:如何构建神经网络.基于 PyTorch 专门构建神经网络的子模块 torch.nn 构建一个简单的神经网络. 完整教程运行 codelab→ https://ope ...

  6. 清华大学开源迁移学习算法库:基于PyTorch实现,支持轻松调用已有算法

    机器之心报道 编辑:魔王 作者:清华大学大数据研究中心 近日,清华大学大数据研究中心机器学习研究部开源了一个高效.简洁的迁移学习算法库 Transfer-Learn,并发布了第一个子库--深度领域自适 ...

  7. YOLOv5 它来了!基于 PyTorch,体积比 YOLOv4 小 90%,速度却超 2 倍!

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI YOLOv4还没有退热,YOLOv5已经发布! 6月9日,Ultralytics公司开源了YOLOv5,离上一次YOLOv4发布不到50天 ...

  8. Python深度学习:基于PyTorch [Deep Learning with Python and PyTorch]

    作者:吴茂贵,郁明敏,杨本法,李涛,张粤磊 著 出版社:机械工业出版社 品牌:机工出版 出版时间:2019-11-01 Python深度学习:基于PyTorch [Deep Learning with ...

  9. Kornia开源可微分计算机视觉库,基于Pytorch,GitHub 3000星

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 编辑丨机器之心 OpenCV 创始人 Gary Bradski 等人近期发表了一篇 Kornia 的综 ...

  10. 基于Pytorch和RDKit建立QSAR模型

    尝试使用pytorch和RDKit构建QSAR模型 环境依赖 pip install pprint pip install argparse #安装rdkit conda install -c rdk ...

最新文章

  1. ​causal-learn:基于Python的因果发现算法平台
  2. quick-cocos2d-x教程12:实现文本和password输入界面
  3. 使用camera_calibration对xtion pro live深度相机进行参数标定,rosdep install camera_calibration报错Rosdep cannot find
  4. c++ 位运算_C语言之运算符
  5. 豆瓣 为什么不用php,豆瓣网友是不是都疯了?
  6. python生成.exe文件
  7. 第三篇:C++ 中的几种初始化
  8. npm:no such file /usr/local/lib/node_modules/vue-cli/node_modules/get-stream
  9. matlab shift 详解,MeanShift算法详解以及matlab源码
  10. 嵌入式--需要懂的网站
  11. 计算机科学 贺楠,计算机学部-黑龙江东方学院.DOC
  12. 快手 (kuaishou.net) 2.6 发布
  13. SAP能为纺织印染行业带来什么?
  14. 一文说清MySQL索引数据结构
  15. 【JavaEE】Day11-多线程
  16. Automated_bounty_Hunter全自动漏洞赏金猎人使用场景一
  17. vue跳转链接(新页签)
  18. 一首特别适合冥想的音乐
  19. python在excel中指定位置写入值
  20. service和systemctl

热门文章

  1. Linux音频软件:Alsa、OSS和Pulseaudio、ESD、
  2. serverlet 返回json
  3. 手绘白板动画视频制作工具VideoScribe 3.12.0 Windows和macOS最新英文专业版原生支持横屏竖屏方屏尺寸输出视频无水印支持720p和1080p高清输出自带5简1繁中文字体
  4. 【监控系统】Smokeping网络监控
  5. 基于STM32的TM1638的按键控制以及数码管和LED灯的动态扫描
  6. 利用正则表达式简单判断账号密码等
  7. OpenDDS踩坑(2)-DCPSInfoRepo ERROR add_domain_participant returned invalid id
  8. mysql_safe my.cnf 配置_mysql my.cnf配置文件详解
  9. 【新技能get】如何通过地址查看附件企业基本信息?
  10. 全网最详细的新手入门的Linux安装教程