文件管理 · 2024年1月21日

tensorflow教程|如何从零使用 Keras + TensorFlow 开发一个复杂深度学习模型

① 如何用 TensorFlow 实现生成式对抗网络

我们利用 TensorFlow 提供的 tf.train.AdamOptimizer 来控制学习速度。AdamOptimizer 通过使用动量(参数的移动平均数)来改善传统梯度下降,促进超参数动态调整。我们可以通过创建标签错误率的摘要标量来跟踪丢失和错误率:# Create a placeholder for the summary statisticswith tf.name_scope("accuracy"):# Compute the edit (Levenshtein) distance of the top pathdistance =tf.edit_distance(tf.cast(self.decoded[0], tf.int32), self.targets)# Compute the label error rate (accuracy)self.ler =tf.rece_mean(distance, name='label_error_rate')self.ler_placeholder =tf.placeholder(dtype=tf.float32, shape=[])self.train_ler_op =tf.summary.scalar("train_label_error_rate", self.ler_placeholder)self.dev_ler_op =tf.summary.scalar("validation_label_error_rate", self.ler_placeholder)self.test_ler_op =tf.summary.scalar("test_label_error_rate", self.ler_placeholder)如何改进 RNN现在我们构建了一个简单的 LSTM RNN 网络,下一个问题是:如何继续改进它看幸运的是,在开源社区里,很多大公司都开源了自己的最新语音识别模型。在 2016 年 9 月,微软的论文《The Microsoft 2016 Conversational Speech Recognition System》展示了在 NIST 200 Switchboard 数据中单系统残差网络错误率 6.9% 的新方式。他们在卷积+循环神经网络上使用了几种不同的声学和语言模型。微软的团队和其他研究人员在过去 4 年中做出的主要改进包括:在基于字符的 RNN 上使用语言模型使用卷积神经网络(CNN)从音频中获取特征使用多个 RNN 模型组合值得注意的是,在过去几十年里传统语音识别模型获得的研究成果,在目前的深度学习语音识别模型中仍然扮演着自己的角色。修改自: A Historical Perspective of Speech Recognition, Xuedong Huang, James Baker, Raj Reddy Communications of the ACM, Vol. 57 No. 1, Pages 94-103, 2014训练你的第一个 RNN 模型在本教程的 Github 里,作者提供了一些介绍以帮助读者在 TensorFlow 中使用 RNN 和 CTC 损失函数训练端到端语音识别系统。大部分事例数据来自 LibriVox。数据被分别存放于以下文件夹中:Train: train-clean-100-wav (5 examples)Test: test-clean-wav (2 examples)Dev: dev-clean-wav (2 examples)当训练这些示例数据时,你会很快注意到训练数据的词错率(WER)会产生过拟合,而在测试和开发集中词错率则有 85% 左右。词错率不是 100% 的原因在于每个字母有 29 种可能性(a-z、逗号、空格和空白),神经网络很快就能学会:某些字符(e,a,空格,r,s,t)比其他的更常见辅音-元音-辅音是英文的构词特征MFCC 输入声音信号振幅特征的增加只与字母 a-z 有关

② TensorFlow怎样入门,怎样快速学习

【完整版,10章】Google老师亲授 TensorFlow2.0 入门到进阶网络网盘免费资源在线学习

链接: https://pan..com/s/12Cr6aOXQndO6jAzf-sIp9A

提取码: chix

【完整版,10章】Google老师亲授 TensorFlow2.0 入门到进阶 课程目录2.png 课程目录1.png 第9章 Tensorflow模型保存与部署.rar 第8章 Tensorflow分布式.rar 第7章 循环神经网络.rar 第6章 卷积神经网络.rar 第5章 Tensorflow Estimator使用与tf1.0.rar 第4章 Tensorflow dataset使用.rar 第3章 Tensorflow基础API使用.rar 第2章 Tensorflow keras实战.rar 第1章 Tensorflow简介与环境搭建.rar 第10章 机器翻译.rar 000.课程代码.rar

③ 如何从零使用 Keras + TensorFlow 开发一个复杂深度学习模型

Keras 是提供一些高可用的 Python API ,能帮助你快速的构建和训练自己的深度学习模型,它的后端是 TensorFlow 或者版 Theano 。本文假设权你已经熟悉了 TensorFlow 和卷积神经网络,如果,你还没有熟悉,那么可以先看看这个10分钟入门 TensorFlow 教程和卷积神经网络教程,然后再回来阅读这个文章。

在这个教程中,我们将学习以下几个方面:

为什么选择 Keras?为什么 Keras 被认为是深度学习的未来?

在Ubuntu上面一步一步安装Keras。

Keras TensorFlow教程:Keras基础知识。

了解 Keras 序列模型4.1 实际例子讲解线性回归问题

使用 Keras 保存和回复预训练的模型

Keras API6.1 使用Keras API开发VGG卷积神经网络6.2 使用Keras API构建并运行SqueezeNet卷积神经网络。

④ 普通电脑PC怎样跑TensorFlow的GPU模式

首先需要看你的PC配置是否够,TF的GPU模式只支持N卡,然后计算能力高于3.0,具体可以查:https://developer.nvidia.com/cuda-gpus

安装教程可以参考:http://haiy.github.io/2016/07/17/ubuntu16.04%E4%B8%8AGTX1080%E7%9A%84CUDA%E5%AE%89%E8%A3%85.html

http://blog.csdn.net/zhaoyu106/article/details/52793183

Ubuntu16.04上gtx1080的cuda安装

July 17 2016

目前tensorflow是一个非常流行的深度学习计算框架,常规硬件及系统的安装方法官方的doc已经说的很清楚了,但是 因为系统是ubuntu16.04,显卡是GTX1080,所以不可避免的要折腾起来。在上一篇已经在16.04上安装好了驱动。接下来其实 重点安装的是CUDA和cuDNN.

首先说为什么要安装CUDA和cuDNN,关于采用GPU计算比CPU有速度有多少提升的benchmark找找就有,这次重点是怎么让tensorflow充分用的 上GTX1080能力。具体的就是如何把支持GTX1080的CUDA和cuDNN装起来,然后让tensorflow认识我们新装的CUDA和cuDNN。

首先总体说下安装步骤:

1 首先要注册NVIDIA developer的帐号,分别下载CUDA和cuDNN

2 确认准备gcc版本,安装依赖库sudo apt-get install freegl

3 安装CUDA

4 解压cuDNN

5 clone tensorflow源码,configure配置

6 编译安装

7 最后一哆嗦,测试!

准备工作

在正式开始前,猜核尺需要做几个准备工作,主要是大概先看下文档

cuda FAQ

tensorflow 的安装文档

cuda-gpu的支持列表/计算能力/FAQ

cudnn 5.1有多牛

cuda tookit下载页面

CUDA_Installation_Guide_linux.pdf

cudnn User Guide

文档看过之后接下来就是实际动手的过程:

1 注册NVIDIA developer的帐号,分别下载CUDA和cuDNN

1.1 下载CUDA 打开cuda toolkit下载页面,GTX1080 要用的是CUDA 8。先点击JOIN,注册帐号。 完了后,再回到cuda toolkit下载页面。选择 linux, x86-64, ubuntu, 16.04, runfile(local)

1.2 下载cuDNN 进入cudnn的下载页,一堆调查,日志写时下载的是[Download cuDNN v5 (May 27, 2016), for CUDA 8.0 RC],点开选linux,不出意外的话这个就是下载地址.

2 确认GCC版本,安装依赖库

确认本机穗高gcc版本,16.04默认的是gcc 5,这里安装需要的最高是gcc 4.9。接下来就氏答安装配置gcc 4.9.

2.1 安装gcc 4.9,并修改系统默认为4.9

sudo apt-get install gcc-4.9 gcc-4.9 g++-4.9 g++-4.9gcc –versionsudo update-alternatives –install /usr/bin/g++ g++ /usr/bin/g++-4.9 10sudo update-alternatives –install /usr/bin/cc cc /usr/bin/gcc 30sudo update-alternatives –set cc /usr/bin/gccsudo update-alternatives –install /usr/bin/c++ c++ /usr/bin/g++ 30sudo update-alternatives –set c++ /usr/bin/g++gcc –version

2.2 一个小依赖

sudo apt-get install freegl

3 安装CUDA

需要注意的是这个地方有个选择安装低版本驱动的地方,选n 大致的安装流程如下:

3.1 安装CUDA

chmod +x /cuda_8.0.27_linux.run./cuda_8.0.27_linux.run….Do you accept the previously read EULA?accept/decline/quit: acceptInstall NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?(y)es/(n)o/(q)uit: nInstall the CUDA 8.0 Toolkit?(y)es/(n)o/(q)uit: yEnter Toolkit Location[ default is /usr/local/cuda-8.0 ]: Do you want to install a symbolic link at /usr/local/cuda?(y)es/(n)o/(q)uit: yInstall the CUDA 8.0 Samples?(y)es/(n)o/(q)uit: yEnter CUDA Samples Location[ default is /home/h ]: /home/h/Documents/cuda_samples….

3.2 写入环境变量

vim ~/.bashrc#添加下面变量export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

3.3 安装好后简单验证

a. 进入刚配置时指定的cuda sample所在文件夹,NVIDIA_CUDA-8.0_Samples/

b. cd 0_Simple/asyncAPI;sudo make

c. NVIDIA_CUDA-8.0_Samples/0_Simple/asyncAPI$ ./asyncAPI [./asyncAPI] – Starting… GPU Device 0: “GeForce GTX 1080” with compute capability 6.1 CUDA device [GeForce GTX 1080] time spent executing by the GPU: 10.94 time spent by CPU in CUDA calls: 0.19 CPU executed 50591 iterations while waiting for GPU to finish

4 安装cuDNN

h@h:~/Downloads$ tar xvzf cudnn-8.0-linux-x64-v5.0-ga.tgz cuda/include/cudnn.hcuda/lib64/libcudnn.socuda/lib64/libcudnn.so.5cuda/lib64/libcudnn.so.5.0.5cuda/lib64/libcudnn_static.ah@h:~/Downloads$ sudo cp -R cuda/lib64 /usr/local/cuda/lib64h@h:~/Downloads$ sudo mkdir -p /usr/local/cuda/includeh@h:~/Downloads/cuda$ sudo cp include/cudnn.h /usr/local/cuda/include/sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

5 clone, configure tensorflow

5.1 clone源码

$ git clone https://github.com/tensorflow/tensorflow

5.2 configure配置整个配置流程应该跟下面的基本一样的

h@h:~/Downloads/tensorflow$ cd ./tensorflow/h@h:~/Downloads/tensorflow$ ./configurePlease specify the location of python. [Default is /usr/bin/python]: ***Do you wish to build TensorFlow with Google Cloud Platform support? [y/N] N***No Google Cloud Platform support will be enabled for TensorFlow***Do you wish to build TensorFlow with GPU support? [y/N] y***GPU support will be enabled for TensorFlowPlease specify which gcc nvcc should use as the host compiler. [Default is /usr/bin/gcc]: **Please specify the location where CUDA toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]: /usr/local/cuda-8.0 ****Please specify the Cudnn version you want to use. [Leave empty to use system default]: 5.0.5****Please specify the location where cuDNN 5.0.5 library is installed. Refer to README.md for more details. [Default is /usr/local/cuda-8.0]: /usr/local/cuda**Please specify a list of comma-separated Cuda compute capabilities you want to build with.You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus.**Please note that each additional compute capability significantly increases your build time and binary size.[Default is: "3.5,5.2"]: 6.1**Setting up Cuda includeSetting up Cuda lib64Setting up Cuda binSetting up Cuda nvvmSetting up CUPTI includeSetting up CUPTI lib64Configuration finished

6 编译安装

6.1 编译工具Bazel安装配置先看一眼文档然后就执行下面的流程:

#安装java 1.8sudo add-apt-repository ppa:webupd8team/javasudo apt-get updatesudo apt-get install oracle-java8-installer#安装好后车参考下java -version#添加源echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.listcurl https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg | sudo apt-key add -#下载sudo apt-get update && sudo apt-get install bazel#升级sudo apt-get upgrade bazel

6.2 编译tensorflow的pip版本并安装

$ bazel build -c opt //tensorflow/tools/pip_package:build_pip_package# To build with GPU support:$ bazel build -c opt –config=cuda //tensorflow/tools/pip_package:build_pip_package$ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg# The name of the .whl file will depend on your platform.#注意编译完成后生成的文件名字和官方doc里面的是不一定一致的$ sudo pip install /tmp/tensorflow_pkg/tensorflow-0.*-linux_x86_64.whl

i6700k 32g编译时间:

只编译代码不带pip INFO: Elapsed time: 967.271s, Critical Path: 538.38s

bazel-bin/tensorflow/tools/pip_package/build_pip_package INFO: Elapsed time: 65.183s, Critical Path: 48.58

7 最后测试

前面都整完了,现在该测试了,注意前面有两个动态链接库的位置,cuDNN在/usr/local/cuda/lib64, 而cuda在/usr/local/cuda-8.0/lib64,所以这个时候的bashrc应该这么写:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

写完后,

source ~/.bashrccd tensorflow/tensorflow/models/image/mnistpython convolutional.py

成功的话会出现流畅的跑动:

h@h:~/Downloads/tensorflow/tensorflow/models/image/mnist$ python convolutional.pyI tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.so locallyI tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcudnn.so.5.0.5 locallyI tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.so locallyI tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.so.1 locallyI tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.so locallyExtracting data/train-images-idx3-ubyte.gzExtracting data/train-labels-idx1-ubyte.gzExtracting data/t10k-images-idx3-ubyte.gzExtracting data/t10k-labels-idx1-ubyte.gzI tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:925] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zeroI tensorflow/core/common_runtime/gpu/gpu_init.cc:102] Found device 0 with properties: name: GeForce GTX 1080major: 6 minor: 1 memoryClockRate (GHz) 1.8475pciBusID 0000:01:00.0Total memory: 7.92GiBFree memory: 7.41GiBI tensorflow/core/common_runtime/gpu/gpu_init.cc:126] DMA: 0 I tensorflow/core/common_runtime/gpu/gpu_init.cc:136] 0: Y I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0)Initialized!Step 0 (epoch 0.00), 8.4 msMinibatch loss: 12.054, learning rate: 0.010000Minibatch error: 90.6%Validation error: 84.6%……Minibatch error: 0.0%Validation error: 0.7%Step 8500 (epoch 9.89), 4.7 msMinibatch loss: 1.601, learning rate: 0.006302Minibatch error: 0.0%Validation error: 0.9%Test error: 0.8%