『Lab』GPU服务器使用备忘
总(详注)
# @IDforHYIT
# 启动Docker
dockerrun
# 选择容器
[tesnsorflow-zqy]
# 拷贝所需压缩文件至容器内
scp [email protected]:/home/hyitzqy1/MaSiwei/facenet.tar.gz ~/
# 输入密码
[passward]
# 切换进目录
cd ~
# 查看是否拷贝成功
ls
# 解压tar.gz文件,从此开始以facenet项目的训练为例。
# FaceNet,谷歌的开源通用人脸验证、识别、聚类系统/模型
tar -zxvf facenet.tar.gz
# 切换进解压文件夹
cd facenet
# 配置运行py所需的环境变量,可配合使用pwd命令查看环境文件夹所处位置信息
export PYTHONPATH=$PYTHONPATH:/home/test/facenet/src
echo $PYTHONPATH # 查看是否配置成功
# 人脸检测和数据集的人脸对齐,先利用MTCNN对原始圄像进行人脸检测和对齐
python src/align/align_dataset_mtcnn.py data/casia/raw/ data/casia/casia_maxpy_mtcnnpy_182 --image_size 182 --margin 44
# 处理数据集拷贝出容器防一万
# 服务器空间爆了时删除一些不必要的文件
df -h # 查看空间占用情况
rm -v facenet.tar.gz # 删除文件
rm -rf lfw/ # 删除目录下全部文件
tar -czvf /home/test/facenet/data/casia/casia_maxpy_mtcnnpy_182.tar.gz /home/test/facenet/data/casia/
scp /home/test/facenet/data/casia/casia_maxpy_mcnnpy_182.tar.gz [email protected]:/home/hyitzqy1/MaSiwei/facenet/data/casia/
# 模型训练
python src/train_softmax.py --logs_base_dir ~/facenet/logs/facenet/ --models_base_dir ~/facenet/models/facenet/ --data_dir ~/facenet/data/casia/casia_maxpy_mtcnnalign_182/ --image_size 160 --model_def models.inception_resnet_v1 --lfw_dir ~/facenet/data/lfw/lfw_mtcnnalign_160/ --optimizer RMSPROP --learning_rate -1 --max_nrof_epochs 80 --keep_probability 0.8 --random_crop --random_flip --learning_rate_schedule_file data/learning_rate_schedule_classifier_casia.txt --weight_decay 5e-5 --center_loss_factor 1e-2 --center_loss_alfa 0.9 --batch_size 1 --gpu_memory_fraction 0.5
python src/train_softmax.py --logs_base_dir ~/facenet/logs/facenet/ --models_base_dir ~/facenet/models/facenet/ --data_dir ~/facenet/data/casia/raw/ --image_size 160 --model_def models.inception_resnet_v1 --lfw_dir ~/facenet/data/lfw/lfw_mtcnnalign_160/ --optimizer RMSPROP --learning_rate -1 --max_nrof_epochs 80 --keep_probability 0.8 --random_crop --random_flip --learning_rate_schedule_file data/learning_rate_schedule_classifier_casia.txt --weight_decay 5e-5 --center_loss_factor 1e-2 --center_loss_alfa 0.9 --batch_size 1 --gpu_memory_fraction 0.5
dockermanage # 经常用到的命令 dockermanage 熟悉就好
rm # 删除刚刚申请的容器以节省空间
[container number]
搭建facenet环境并commit
dockerrun
[tesnsorflow-zqy]
cd ~
mkdir MaSiwei
cd ..
scp [email protected]:/home/hyitzqy1/MaSiwei/datasets/facenet.tar.gz ~/MaSiwei/
[passward]
cd ~/MaSiwei/
tar -zxvf facenet.tar.gz # 纯代码,不含数据集
export PYTHONPATH=$PYTHONPATH:/home/test/MaSiwei/facenet/src/ # 添加facenet环境变量支持 |---> 实测重登会复位,暂时性命令,仅限本次登录有效
# 查看是否配置成功
echo $PYTHONPATH
python
import facenet
exit()
Ctrl+D # 退出Docker
dockermanage # 经常用到的命令 dockermanage 熟悉就好
# 删除刚刚申请的容器以节省空间
rm
[container number]
# 提交刚刚的容器环境到Web端使用
commit
[container number] # 根据时间判定,一般最新那个
[commit success] # OK! 可以在Web端使用facenet环境了
64633训练计划
dockerrun
1
scp [email protected]:/home/hyitzqy1/MaSiwei/datasets/casia_raw_64633_0001993.tar.gz ~/MaSiwei/facenet/data/
cd ~/MaSiwei/facenet/data/
mkdir -p casia/raw
tar -zxvf casia_raw_64633_0001993.tar.gz -C casia/raw/ # 命令可优化,待更。已更。
cd /
cd ~/MaSiwei/facenet/
export PYTHONPATH=$PYTHONPATH:/home/test/MaSiwei/facenet/src/
python src/align/align_dataset_mtcnn.py data/casia/raw data/casia/casia_maxpy_mtcnnpy_182 --image_size 182 --margin 44
scp [email protected]:/home/hyitzqy1/MaSiwei/datasets/lfw.tar.gz ~/MaSiwei/facenet/data/
mkdir -p lfw/raw
tar -zxvf lfw.tar.gz -C lfw/raw/
cd /
cd ~/MaSiwei/facenet/
python src/align/align_dataset_mtcnn.py data/lfw/raw data/lfw/lfw_mtcnnpy_160 --image_size 160 --margin 32 --random_order
cd /home/test/MaSiwei/facenet/data/casia
tar -czvf casia_maxpy_mtcnnpy_182.tar.gz casia_maxpy_mtcnnpy_182
mv casia_maxpy_mtcnnpy_182.tar.gz casia_maxpy_mtcnnpy_182_64633_0001993.tar.gz
scp /home/test/MaSiwei/facenet/data/casia/casia_maxpy_mtcnnpy_182_64633_0001993.tar.gz [email protected]:/home/hyitzqy1/MaSiwei/datasets/
cd /
cd ~/MaSiwei/facenet/
python src/train_softmax.py --logs_base_dir logs/facenet/ --models_base_dir models/facenet/ --data_dir data/casia/casia_maxpy_mtcnnpy_182 --image_size 160 --model_def models.inception_resnet_v1 --lfw_dir data/lfw/lfw_mtcnnalign_160/ --optimizer RMSPROP --learning_rate -1 --max_nrof_epochs 150 --keep_probability 0.8 --random_crop --random_flip --learning_rate_schedule_file data/learning_rate_schedule_classifier_casia.txt --weight_decay 5e-5 --center_loss_factor 1e-2 --center_loss_alfa 0.9
python src/train_softmax.py --logs_base_dir logs/facenet/ --models_base_dir models/facenet/ --data_dir data/casia/casia_maxpy_mtcnnpy_182/ --image_size 160 --model_def models.inception_resnet_v1 --lfw_dir data/lfw/lfw_mtcnnalign_160/ --optimizer ADAM --learning_rate -1 --max_nrof_epochs 150 --keep_probability 0.8 --random_crop --random_flip --use_fixed_image_standardization --learning_rate_schedule_file data/learning_rate_schedule_classifier_casia.txt --weight_decay 5e-4 --embedding_size 512 --lfw_distance_metric 1 --lfw_use_flipped_images --lfw_subtract_mean --validation_set_split_ratio 0.05 --validate_every_n_epochs 5 --prelogits_norm_loss_factor 5e-4
实验过程
数据集 | Info | Notes |
---|---|---|
LFW | 13233 images, 5749 people 1680 people with two or more images |
(本机)Accuracy: 0. 98500+-0.00658 |
CASIA-WebFace(all) | 494414 images, 10575 people | (GPU)out of memory(30GB) |
CASIA-WebFace(part) | 64633 images (校正后64133) | (GPU)with extension png or jpg |
CASIA-WebFace(little) | 11691 images (校正后11600) | (GPU)同上 |
LFW(本机跑)
人脸检测+校正+测试
用项目提供的范例模型准确度验证结果
准确率、验证率等
Accuracy: 0. 98500+-0.00658
Validation rate: 0. 90100+-0. 02395 @ FAR=0. 00067
Area Under Curve (AUC) :
0.998
Equal Error Rate (EER) : 0. 016
比对两个人脸的欧式距离
两个人像之间的欧几里得距离越近,说明它们越相似。一般欧式距离小于1,就可以认为是同一个人
lfw训练
本机GPU
Accuracy: 0. 50000+-0. 00000
Validation rate: 0. 00000+-0. 00000 @ FAR=0. 00000
本机CPU
Accuracy: 0.56700+-0.02968
Validation rate: 0.01233+-0.00423 @ FAR=0.00133
Notes:
accracy 和 validation rate计算方式如下:
accuracy =(判断正确的 同一个人+ 判断正确的 不同的人) / 所有数据
validation rate = 判断正确的同一个人的数量 / 所有的同一个人 的数量
11691计划(GPU服务器跑)
以此为例说
dockerrun
[tesnsorflow-zqy]
scp [email protected]:/home/hyitzqy1/MaSiwei/datasets/casia_raw_11691_0000299.tar.gz ~/MaSiwei/facenet/data/
[passward]
cd ~/MaSiwei/facenet/data/
mkdir -p casia/raw
tar -zxvf casia_raw_11691_0000299.tar.gz -C casia/raw
cd ~/MaSiwei/facenet/
# 配置临时PYTHONPATH
export PYTHONPATH=$PYTHONPATH:/home/test/MaSiwei/facenet/src/
# 数据集人脸矫正,及哦啊正后图片存入casia_maxpy_mtcnnpy_182文件夹
python src/align/align_dataset_mtcnn.py data/casia/raw data/casia/casia_maxpy_mtcnnpy_182 --image_size 182 --margin 44
Total number of images: 11691
Number of successfully aligned images: 11596
# 处理后结果压缩复制出容器以作备用
cd ~/MaSiwei/facenet/data/casia/
tar -czvf casia_maxpy_mtcnnpy_182.tar.gz casia_maxpy_mtcnnpy_182
tar -czvf casia_maxpy_mtcnnpy_182_11691_0000299.tar.gz casia_maxpy_mtcnnpy_182
scp /home/test/MaSiwei/facenet/data/casia/casia_maxpy_mtcnnpy_182_11691_0000299.tar.gz [email protected]:/home/hyitzqy1/MaSiwei/datasets/
左:原始数据集
在MTCNN 检测得到的人脸框的基础上缩小32px,并缩放到160 × 160 大小(人脸检测和对齐)
# 导入lfw数据集(已校正)
scp [email protected]:/home/hyitzqy1/MaSiwei/datasets/lfw.tar.gz ~/MaSiwei/facenet/data/
cd ~/MaSiwei/facenet/data/
mkdir -p lfw/raw
tar -zxvf lfw.tar.gz -C lfw/raw/
# 训练
cd ~/MaSiwei/facenet/
python src/train_softmax.py --logs_base_dir logs/facenet/ --models_base_dir models/facenet/ --data_dir data/casia/casia_maxpy_mtcnnpy_182 --image_size 160 --model_def models.inception_resnet_v1 --lfw_dir data/lfw/lfw_mtcnnalign_160/ --optimizer RMSPROP --learning_rate -1 --max_nrof_epochs 150 --keep_probability 0.8 --random_crop --random_flip --learning_rate_schedule_file data/learning_rate_schedule_classifier_casia.txt --weight_decay 5e-5 --center_loss_factor 1e-2 --center_loss_alfa 0.9
# or(maybe)
python src/train_softmax.py --logs_base_dir logs/facenet/ --models_base_dir models/facenet/ --data_dir data/casia/casia_maxpy_mtcnnpy_182/ --image_size 160 --model_def models.inception_resnet_v1 --lfw_dir data/lfw/lfw_mtcnnalign_160/ --optimizer ADAM --learning_rate -1 --max_nrof_epochs 150 --keep_probability 0.8 --random_crop --random_flip --use_fixed_image_standardization --learning_rate_schedule_file data/learning_rate_schedule_classifier_casia.txt --weight_decay 5e-4 --embedding_size 512 --lfw_distance_metric 1 --lfw_use_flipped_images --lfw_subtract_mean --validation_set_split_ratio 0.05 --validate_every_n_epochs 5 --prelogits_norm_loss_factor 5e-4
hey, bye~
This blog is under a CC BY-NC-SA 3.0 Unported License
本文链接:https://idforhyit.github.io/2019/04/14/Lab-GPU-Notes/