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 相关文章推荐
用Python的pandas框架操作Excel文件中的数据教程
Mar 31 Python
如何使用python爬取csdn博客访问量
Feb 14 Python
python字符串,数值计算
Oct 05 Python
python用for循环求和的方法总结
Jul 08 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
Aug 07 Python
Flask项目中实现短信验证码和邮箱验证码功能
Dec 05 Python
numpy按列连接两个维数不同的数组方式
Dec 06 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
Apr 21 Python
python 读取二进制 显示图片案例
Apr 24 Python
Python如何合并多个字典或映射
Jul 24 Python
python切割图片的示例
Nov 12 Python
总结Pyinstaller打包的高级用法
Jun 28 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程序占用多少内存(memory_get_usage)
2012/09/23 PHP
记录mysql性能查询过程的使用方法
2013/05/02 PHP
php中define用法实例
2015/07/30 PHP
Laravel 的数据库迁移的方法
2017/07/31 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
jQuery中绑定事件的命名空间详解
2011/04/05 Javascript
Jquery 的扩展方法总结
2011/10/01 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
原生javascript实现无间缝滚动示例
2014/01/28 Javascript
js实现拖拽效果
2015/02/12 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
JavaScript数据结构之二叉树的遍历算法示例
2017/04/13 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
重学JS 系列:聊聊继承(推荐)
2019/04/11 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
Scrapy的简单使用教程
2017/10/24 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
django的auth认证,authenticate和装饰器功能详解
2019/07/25 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
python和node.js生成当前时间戳的示例
2020/09/29 Python
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
德国最大的服装、鞋子和配件在线商店之一:Outfits24
2019/07/23 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
给排水专业应届生求职信
2013/10/12 职场文书
自荐信怎么写好
2013/11/11 职场文书
小学生演讲稿
2014/01/12 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
党员一句话承诺大全
2014/03/28 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
安徽导游词
2015/02/12 职场文书