很长时间没有发自己学习过程的博客了,这次发的是初次使用pyTorch搭建自己的facenet。

参考博主博客:https://blog.csdn.net/weixin_44791964/article/details/108220265
源代码地址:https://github.com/bubbliiiing/facenet-pytorch

本次使用的是Anaconda搭建的虚拟网络

一、项目运行环境:

pycharm
python:3.6.13
torch:1.2.0
torchvision:0.4.0
h5py:2.10.0
importlib-metadata:4.8.3
markdown:3.3.7
matplotlib:3.1.2
numpy:1.17.0
opencv-python:4.1.2.30
pillow:8.2.0
scipy:1.2.1

二、运行代码

因为Anaconda是之前下载好的,所以就跳过这个步骤
环境最主要的是torch的安装
在Anaconda Prompt(Anaconda1)界面输入:

conda create -n pytorch python=3.9.13

之后输入下面的指令查看自己安装的新环境

conda info --envs

之后切换环境,输入指令:

activate base
activate pytorch

输入pip list查看当前版本环境
之后输入pip install torch==1.2.0安装torch
输入pip install torchvision==0.4.0安装torchvision

进行facenet搭建代码的下载


下载对应所需要进行训练的数据

代码和相关数据按照如下数据进行解压

1、安装其他运行多需要的环境

当我们用pycharm打开下载的项目的时候,配置好Anaconda的解释器,之后按照pycharm提示的那样,在Anaconda Prompt(Anaconda1)界面进行相关环境的安装。

2、需要训练的数据

3、用代码自带的训练好的facenet_mobilenet.pth进行不同图片的预测

首先调两个人脸相同的图片,结果如下:

之后调用两个不同人脸的图片

可以看出相同人脸的欧氏距离比不同人脸的欧氏距离小得多

4、使用数据进行模型的训练

进行训练前的参数修改
首先是backbone的选择,要选择要采用什么主干提取网络(本次运行代码统一采用mobilenet提取网络)
需要注意的是修改了backbone之后还有修改model_path为对应的预训练权重

在确定参数后运行train.py文件,这是出现报错

RuntimeError: CUDA out of memory

这是因为显存不够,需要调整batch_size参数dataloader
刚开始修改参数的时候提醒我要修改成3的倍数,我看到之后相关教学猜测原因是:utils/dataloader.py文件,输入信息是3个一组提交(还没有深入了解,仅仅是猜测)

之后一直把batch_size修改为21,把一些还在运行的程序关闭以后,train.py文件才能成功的运行


等训练结束之后,训练好的facenet模型保存到了logs文件夹

5、开始使用我们的模型进行预测

首先修改facenet.py文件中的model_path参数和backbone
model_path填写我们训练好的模型路径(选择一个值较小的)
backbone还是保持mobilenet的提取神经网络

之后可以运行predict.py进行预测
首先输入两个相同人脸的图片进行预测

再输入两个不同人脸的图片进行预测

可以发现欧氏距离大得多

6、对我们训练出来的模型进行评估

依旧是先修改eval_LFW.py的model_path参数和backbone参数(方法同上)

运行eval_LFW.py文件

可以看出我们通过数据集训练出来的模型的精确值为98.117%左右

三、总结

因为之前只是单纯的下载了Anaconda,没有具体的使用过,所以本次通过pyTorch搭建facenet让自己熟悉了一些Anaconda构造环境的操作。
刚开始pytorch安装失败了一次,也知道了错安cpu版本的和gpu版本的怎么分别。
也了解到了facenet中的一些预测和进行欧式距离判断的流程。
但具体的神经网络的知识还不怎么了解,还需要慢慢学习。

使用pyTorch搭建自己的facenet相关推荐

  1. 聪明的人脸识别3——Pytorch 搭建自己的Facenet人脸识别平台

    聪明的人脸识别3--Pytorch 搭建自己的Facenet人脸识别平台 学习前言 什么是Facenet 源码下载 Facenet的实现思路 一.预测部分 1.主干网络介绍 2.根据初步特征获得长度为 ...

  2. 一、pytorch搭建实战以及sequential的使用

    一.pytorch搭建实战以及sequential的使用 1.A sequential container 2.搭建cifar10 model structure 3.创建实例进行测试(可以检查网络是 ...

  3. 【深度学习】——利用pytorch搭建一个完整的深度学习项目(构建模型、加载数据集、参数配置、训练、模型保存、预测)

    目录 一.深度学习项目的基本构成 二.实战(猫狗分类) 1.数据集下载 2.dataset.py文件 3.model.py 4.config.py 5.predict.py 一.深度学习项目的基本构成 ...

  4. 基于PyTorch搭建CNN实现视频动作分类任务代码详解

    数据及具体讲解来源: 基于PyTorch搭建CNN实现视频动作分类任务 import torch import torch.nn as nn import torchvision.transforms ...

  5. Pytorch搭建自己的模型

    前言 PyTorch.TensorFlow都是主流的深度学习框架,今天主要讲解一下如何快速使用pytorch搭建自己的模型.至于为什么选择讲解pytorch,这里我就简单说明一下自己的使用感受(相对T ...

  6. Educoder 机器学习 神经网络 第四关:使用pytorch搭建卷积神经网络识别手写数字

    任务描述 相关知识 卷积神经网络 为什么使用卷积神经网络 卷积 池化 全连接网络 卷积神经网络大致结构 pytorch构建卷积神经网络项目流程 数据集介绍与加载数据 构建模型 训练模型 保存模型 加载 ...

  7. 使用Pytorch搭建U-Net网络并基于DRIVE数据集训练(语义分割)学习笔记

    使用Pytorch搭建U-Net网络并基于DRIVE数据集训练(语义分割)学习笔记 https://www.bilibili.com/video/BV1rq4y1w7xM?spm_id_from=33 ...

  8. 睿智的目标检测30——Pytorch搭建YoloV4目标检测平台

    睿智的目标检测30--Pytorch搭建YoloV4目标检测平台 学习前言 什么是YOLOV4 代码下载 YOLOV4改进的部分(不完全) YOLOV4结构解析 1.主干特征提取网络Backbone ...

  9. 使用pytorch搭建AlexNet网络模型

    使用pytorch搭建AlexNet网络模型 AlexNet详解 AlexNet是2012年ISLVRC 2012(ImageNet Large Scale Visual Recognition Ch ...

最新文章

  1. [置顶] Hibernate从入门到精通(十)多对多单向关联映射
  2. java 静态数据_Java 静态数据初始化的示例代码
  3. PAT A1030 动态规划
  4. Python 网络爬虫 001 (科普) 网络爬虫简介
  5. ElementUI中el-table添加小计行之后调整在滚动条上方
  6. Tomcat 配置 Context
  7. 共享数据库、共享数据表
  8. 搭建Mock Server
  9. linux子进程中断信息码6,Linux入门学习——进程
  10. Zabbix安装记录
  11. 解决:如何卸载WPS的vba宏功能
  12. 怎么用计算机管理员删除文件,管理员权限删除,教您如何删除需要管理员权限的文件夹...
  13. Go语言的前景、优点
  14. python结构方程模型_SEM结构方程模型分析的数据需要至少多少样本量
  15. STM32F7 硬件IIC驱动
  16. 计算机找不到海信电视,如何设置海信电视投屏 海信电视投屏设置方法【详解】...
  17. 原型软件--Balsamiq Mockups
  18. raid5磁盘阵列原理以及实现
  19. 安装tensorflow
  20. 迪拜要破产 经济危机第二波来啦

热门文章

  1. 解决:IOS无法使用微软账号登录,显示“无法登录,请使用IMAP并重新登录“
  2. 电子元器件贸易采购管理常见难题及解决方案
  3. opencv学习_7 (颜色空间)
  4. 随机生成20个手机号码
  5. 教你从零开始搭建阿里云ESC服务器(建站)新手必看!
  6. kibana远端访问配置
  7. 鸟什么羊什么的成语(鸟什么羊什么四字成语大全)
  8. 你是不是程序员菜鸡,一句话就能证明!
  9. Android DLNA投屏-基本原理
  10. scrapy框架爬取校花网站的升级版