tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)


Posted in Python onJune 30, 2020

1.0tensorflow的安装

1.1安装python

python下载 需要python3.x<=3.7
https://www.python.org/ftp/python/3.7.7/python-3.7.7-amd64.exe

tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)

安装时勾选Add Python 3.7 to PATH,把python添加到环境变量。

1.2安装tensorflow

打开命令行,执行

pip install tensorflow==2.1.0

tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)

pip 会安装tensorflow和一些其他的依赖

1.3安装vc++2015-2019redist…

tensorflow的另一个依赖(很多tensorflow安装失败的原因就是这个没安装)
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

1.4安装CUDA和CUDNN

cuda: https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
cudnn: https://developer.nvidia.com/rdp/cudnn-download(需要注册nvidia账号)
cudnn下载后是个压缩文件,要把他解压出来放在CUDA里,如下图

tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)

高版本CUDA缺失cudart64_101.dll,下载后放在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin里
https://cn.dll-files.com/cudart64_101.dll.html

2.0CASIA实战

2.1CASIA数据集

tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)

可以从网上下载casia数据集,
这里以casia数据集为例,现实中可以使用自己需要的数据集。

2.2数据集的处理

建立data和test两个文件夹,把casia复制到里面
目录是这样的./data/000/000_0.bmp
data.py处理数据,其实就是遍历,匹配,删除

import os 
data = './data'
dirs = os.listdir(data) 
for dir in dirs:
 for file in os.listdir(data + '/' + dir):
  if file.endswith("4.bmp"):
   os.remove(data + '/' + dir + '/' + file)
test = './test'
tdirs = os.listdir(test)
for dir in tdirs:
 for file in os.listdir(test + '/' + dir):
  if file.endswith("0.bmp"):
   os.remove(test + '/' + dir + '/' + file)
  if file.endswith("1.bmp"):
   os.remove(test + '/' + dir + '/' + file)
  if file.endswith("2.bmp"):
   os.remove(test + '/' + dir + '/' + file)
  if file.endswith("3.bmp"):
   os.remove(test + '/' + dir + '/' + file)

2.3训练代码

casia.py

import os
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Conv2D, Flatten, Dropout, MaxPooling2D
from tensorflow.keras.preprocessing.image import ImageDataGenerator
import numpy as np
/*我直接建立了个0000,1111,...这样的数组作为标签*/
#data标签
arr = []
for i in range(100):
 for j in range(4):
  arr.append(i)
arr = np.array(arr)
#test标签
tarr = []
for i in range(100):
 tarr.append(i)
tarr = np.array(tarr)

#训练集
pwd='./data'
dirs = os.listdir(pwd)
imgs = []

for dir in dirs:
 for file in os.listdir(pwd + '/' + dir):
  image = tf.io.read_file(pwd + '/' + dir + '/' + file)
  img = tf.image.decode_bmp(image,channels=3)
  imgs.append(img)
print("[*]训练集加载完毕")
print(imgs[0].shape)
#验证集(测试集)
tpwd='./test'
tdirs = os.listdir(tpwd)
timgs = []
for tdir in tdirs:
 for tfile in os.listdir(tpwd + '/' + tdir):
  timage = tf.io.read_file(tpwd + '/' + tdir + '/' + tfile)
  timg = tf.image.decode_bmp(timage,channels=3)
  timgs.append(timg)
print("[*]验证集加载完毕")
print(timgs[0].shape)
#神经网络模型
model = Sequential([
 Conv2D(16, (3,3), padding='same', activation='relu',input_shape=(480,640,3)),
 MaxPooling2D(),
 Conv2D(64, (3,3), padding='same', activation='relu'),
 MaxPooling2D(),
 Conv2D(128, (3,3), padding='same', activation='relu'),
 MaxPooling2D(),
 Flatten(),
 Dense(128, activation='relu'),
 Dense(100, activation='softmax'),
])
model.summary()//打印神经网络模型
#优化器
model.compile(optimizer=tf.keras.optimizers.Adam(),
    loss='sparse_categorical_crossentropy',
    metrics=['accuracy'])
#训练
ds = tf.data.Dataset.from_tensor_slices((imgs,arr))
ds = ds.batch(16)
ds = ds.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
model.fit(ds,epochs=20)
tds = tf.data.Dataset.from_tensor_slices((timgs,tarr))
tds = ds.prefetch(buffer_size=tf.data.experimental.AUTOTUNE)
model.evaluate(tds, verbose=2)
#保存
tf.saved_model.save(model, "./tmp/")

2.4训练与验证

在命令行运行 python casia.py进行训练
predict.py

import os
import tensorflow as tf
import numpy as np
/*这里显卡内存不够了*/
from tensorflow.compat.v1 import ConfigProto
from tensorflow.compat.v1 import InteractiveSession

config = ConfigProto()
config.gpu_options.allow_growth = True
session = InteractiveSession(config=config)
/*显卡内存*/

model_path = './tmp' //加载模型
test_path = "./test/002/002_4.bmp"//这里就是个栗子
model = tf.keras.models.load_model(model_path, custom_objects=None, compile=True)

image = tf.io.read_file(test_path)
img = tf.image.decode_bmp(image,channels=3)
img = img[tf.newaxis, ...]
res = model.predict(
 img, batch_size=None, verbose=0, steps=None, callbacks=None, max_queue_size=10,
 workers=1, use_multiprocessing=False
)
pred = tf.argmax(res, axis=1)
print (pred[0])
print (res[0,pred[0]])

总结

到此这篇关于tensorflow 2.1.0 安装与实战(CASIA FACE v5)的文章就介绍到这了,更多相关tensorflow 2.1.0 安装内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
下载给定网页上图片的方法
Feb 18 Python
Python爬虫爬取美剧网站的实现代码
Sep 03 Python
Python中操作mysql的pymysql模块详解
Sep 13 Python
批量获取及验证HTTP代理的Python脚本
Apr 23 Python
Python实现的字典值比较功能示例
Jan 08 Python
Python  unittest单元测试框架的使用
Sep 08 Python
解决pyinstaller打包pyqt5的问题
Jan 08 Python
用pyqt5 给按钮设置图标和css样式的方法
Jun 24 Python
如何通过python实现全排列
Feb 11 Python
Python连接SQLite数据库并进行增册改查操作方法详解
Feb 18 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 Python
python 实现音频叠加的示例
Oct 29 Python
python 最简单的实现适配器设计模式的示例
Jun 30 #Python
Tensorflow--取tensorf指定列的操作方式
Jun 30 #Python
解决TensorFlow程序无限制占用GPU的方法
Jun 30 #Python
tensorflow 大于某个值为1,小于为0的实例
Jun 30 #Python
基于tf.shape(tensor)和tensor.shape()的区别说明
Jun 30 #Python
Tensorflow全局设置可见GPU编号操作
Jun 30 #Python
Python logging模块异步线程写日志实现过程解析
Jun 30 #Python
You might like
PHP实现指定字段的多维数组排序函数分享
2015/03/09 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
js 数组实现一个类似ruby的迭代器
2009/10/27 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
学习jQuey中的return false
2015/12/18 Javascript
JS正则表达式修饰符global(/g)用法分析
2016/12/27 Javascript
js遮罩效果制作弹出注册界面效果
2017/01/25 Javascript
AngularJS ionic手势事件的使用总结
2017/08/09 Javascript
vue中v-for通过动态绑定class实现触发效果
2018/12/06 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
python 第三方库的安装及pip的使用详解
2017/05/11 Python
有关Python的22个编程技巧
2018/08/29 Python
Python Opencv任意形状目标检测并绘制框图
2019/07/23 Python
Python 读取用户指令和格式化打印实现解析
2019/09/02 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
澳大利亚的奢侈品牌:Oroton
2016/08/26 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
行政助理的职责
2013/11/14 职场文书
《望庐山瀑布》教学反思
2014/04/22 职场文书
住房租房协议书
2014/08/20 职场文书
会计试用期自我评价
2014/09/19 职场文书
三方股东合作协议书
2014/10/28 职场文书
中班下学期幼儿评语
2014/12/30 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
出生证明格式
2015/06/15 职场文书
小学生暑假安全公约
2015/07/14 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
python - timeit 时间模块
2021/04/06 Python
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技
MySQL解决Navicat设置默认字符串时的报错问题
2022/06/16 MySQL