1.0tensorflow的安装

1.1安装python

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

1.2安装tensorflow

打开命令行,执行

pip install tensorflow==2.1.0

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里,如下图

高版本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数据集

可以从网上下载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博客!

python2安装tensorflow,tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)相关推荐

  1. python3.8.0安装详细步骤_python3.8.0安装教程_后端开发

    如何用python画简单的动物_后端开发 用python画简单的动物的方法是:1.画笔设置,如[t.screen.screensize(canvwidth=1000,canvheight=500,bg ...

  2. proe50安装方法64位_proe5.0安装方法64位

    内容来自用户:陈新宏 PROE5.0详细安装方法 PROE5.0安装方法 1:先安装虚拟光驱; . 2.然后e68a8462616964757a686964616f31333433646431用虚拟光 ...

  3. centos7 安装mysql8_CentOS 下 MySQL 8.0 安装部署,超详细!

    MySQL 8正式版8.0.11已发布,官方表示MySQL8要比MySQL 5.7快2倍,还带来了大量的改进和更快的性能!到底谁最牛呢?请看:MySQL 5.7 vs 8.0,哪个性能更牛? Mysq ...

  4. 华为鸿蒙系统怎么安装软件,华为鸿蒙系统2.0怎么进行安装?鸿蒙系统2.0安装步骤一览...

    华为鸿蒙系统2.0怎么进行安装?很多用户知道可以更新这个鸿蒙系统2.0,但是不会进行安装,下面就让安卓乐园小编为大家带来,鸿蒙系统2.0安装步骤一览. 部分更新了华为鸿蒙OS用户表示,安卓和鸿蒙的应用 ...

  5. 如何更换安装鸿蒙系统,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...

    华为鸿蒙系统2.0如何进行安装?现在已经可以安装鸿蒙系统2.0,但是你不清楚安装,下面就让浏览器小编为大家带来,鸿蒙系统2.0安装方法详细介绍. 部分更新了华为鸿蒙OS用户表示,安卓和鸿蒙的应用软件都 ...

  6. 鸿蒙系统可以安装的浏览器,华为鸿蒙系统2.0如何进行安装?鸿蒙系统2.0安装方法详细介绍...

    华为鸿蒙系统2.0如何进行安装?现在已经可以安装鸿蒙系统2.0,但是你不清楚安装,下面就让浏览器小编为大家带来,鸿蒙系统2.0安装方法详细介绍. 部分更新了华为鸿蒙OS用户表示,安卓和鸿蒙的应用软件都 ...

  7. php怎么安装ecshop,ECSHOP4.0安装教程【ECSHOP4.0安装流程方法】ECSHOP4.0安装步骤-ECSHOP教程网...

    ECSHOP教程网更新了最新ecshop4.0安装教程,为菜鸟提供详细图文ecshop4.0安装步骤,一步步教会大家如何ecshop4.0安装方法以及安装流程,让大家都会ecshop4.0安装. 大家 ...

  8. Win10 + RTX3090 安装CUDA11.2 + CUDNN8.1.0 安装

    前提 系统重新安装,anaconda3中tensorflow和pytorch已经安装过,主要目的是方便自己以后重新安装CUDA 主机配置 系统:Win10 64bit CPU:I9-10850K 内存 ...

  9. python3.7.2安装与配置_python3.7.0 安装与配置

    python 3.7.0 X64下载地址: https://www.python.org/ftp/python/3.7.0/python-3.7.0-amd64.exe 更多版本下载请移步到:http ...

最新文章

  1. 转载:oracle RAC集群启动和关闭
  2. Android实现RecyclerView侧滑删除和长按拖拽-ItemTouchHelper
  3. Python-爬取音悦台MV列表以及反爬虫方法
  4. 手工纸盒子_不锈钢水槽如何选购,拉伸水槽与手工槽制造工艺有何区别
  5. 三角形问题——junit test 尝试
  6. 巧用小程序·云开发实现邮件发送功能丨实战
  7. html图片多边形怎么写,使用CSS3构建的图像多边形裁剪动画特效
  8. 京东java笔试_2017阿里,百度,京东java面试+笔试大合集,2018的你会吗?
  9. 基于JAVA+Servlet+JSP+MYSQL的旅游酒店机票预订管理系统
  10. 洛谷P1120【小木棍】(搜索+剪枝)
  11. bootstrap 获取表格修改的结果_bootstrap table getData获取表格数据的方法
  12. [裴礼文数学分析中的典型问题与方法习题参考解答]5.1.25
  13. Edsger W. Dijkstra -- 巨人的肩膀
  14. 通俗易懂的Spatial Transformer Networks(STN)(二)
  15. 使用Linux搭建软路由
  16. Java常用命令:jps、jstack、jmap、jstat(带有实例教程)
  17. 苹果笔记本电脑怎么编辑html,苹果笔记本电脑怎么操作 苹果笔记本电脑操作方法【详解】...
  18. android开机动画 制作工具,开机动画包制作(bootanimation)
  19. 马斯克都不懂的 GraphQL,API 网关又能对其如何理解?
  20. 判了!微信外挂软件“海贼王”主犯获刑10年

热门文章

  1. 2020年中国水产饲料行业发展现状分析,水产需求增加带动行业发展「图」
  2. LATEX--排版神器
  3. 《SCDA:Adapting Object Detectors via Selective Cross-Domain Alignment》论文笔记
  4. 程序员进阶系列:年少不懂爱家家,懂了已是猿中人。
  5. 驭势科技CEO吴甘沙:探索中国式的自动驾驶之路
  6. 前端自学笔记_json
  7. 初一计算机在线应用,2017年计算机应用基础模拟试题「在线」
  8. Android 无法解决第三方库依赖问题
  9. 旅游推荐系统- python- Django
  10. 旅游联盟链源码--蚁从联盟链系统开发功能以及源码分享