1、2-1 TensorFlow2-1 TensorFlow简介简介2-2 Keras2-2 Keras简介简介第二章 TensorFlowTensorFlow、keraskeras简介简介深度学习被视为一种只有专家才可以使用好的艺术,并非是一种通用技术深度学习被视为一种只有专家才可以使用好的艺术,并非是一种通用技术。近两年,谷歌、微软等行业巨头也重点研究一些开源的深度学习框架,如近两年,谷歌、微软等行业巨头也重点研究一些开源的深度学习框架,如TensorFlowTensorFlow、PyTorchPyTorch、CaffeCaffe等。本章主要介绍等。本章主要介绍TensorFlowTensor
2、Flow以及以及KerasKeras框架。这框架。这两个框架是本书示例的主要实施平台。两个框架是本书示例的主要实施平台。2-1 2-1 TensorFlowTensorFlow简介简介TensorFlowTensorFlow的特性:的特性:高度的灵活性;高度的灵活性;真正的可移植性;真正的可移植性;分布式扩展能力;分布式扩展能力;广泛应用性。广泛应用性。2.1.1 TensorFlow2.1.1 TensorFlow的使用的使用 这个过程就像是我们搭建电路一样,先构造一个电路,完成后再通入电流,这个过程就像是我们搭建电路一样,先构造一个电路,完成后再通入电流,使其沿着搭建好的电子元件依次流动,
3、最终完成我们的目标任务。使其沿着搭建好的电子元件依次流动,最终完成我们的目标任务。1.Pip的安装Windows下的安装:Linux下的安装:TensorFlow的安装 CPU版本安装 GPU版本安装pip install tensorflow如果发现速度较慢我们可以使用清华镜像源来下载软件如果发现速度较慢我们可以使用清华镜像源来下载软件:pip install-i https:/ tensorflow CUDA Toolkit CUDA Toolkit是是NvidiaNvidia提供的提供的CUDACUDA开发套件,其中包括了开发套件,其中包括了CUDACUDA驱动,以及编驱动,以及编写写C
4、UDACUDA程序必要的编译器和头文件以及一些辅助函数库。程序必要的编译器和头文件以及一些辅助函数库。在安装完在安装完cuDNNcuDNN库和库和CUDA ToolkitCUDA Toolkit库后,同样使用库后,同样使用pippip来安装来安装TensorFlowTensorFlow。pip install tensorflow-gpu#调用调用TensorFlowimporttensorflowastf#创建一个常量创建一个常量op,产生一个矩阵,产生一个矩阵A。这个。这个op被作为一个节点被作为一个节点加到默认中加到默认中matrix1=tf.constant(3.,3.)#创建另外一个
5、常量创建另外一个常量op,产生一个矩阵,产生一个矩阵Bmatrix2=tf.constant(2.,2.)#创建一个矩阵乘法创建一个矩阵乘法matmulop,把,把matrix1和和matrix2作为输入作为输入.#返回值返回值product代表矩阵乘法的结果代表矩阵乘法的结果.product=tf.matmul(matrix1,matrix2)构建图在会话中启动图启动图的第一步是创建一个启动图的第一步是创建一个Session对象。对象。#创建会话创建会话sess=tf.Session()#调用会话的调用会话的run来运行已经定义好的来运行已经定义好的productresult=sess.ru
6、n(product)printresult#对象在使用完后需要关闭以释放资源对象在使用完后需要关闭以释放资源sess.close()2.1.2 2.1.2 TensorFlowTensorFlow的可视化的可视化 为了易于理解、调试及优化神经网络运算模型,数据科学家及应用开发人员为了易于理解、调试及优化神经网络运算模型,数据科学家及应用开发人员可以使用可以使用TensorFlowTensorFlow的可视化组件的可视化组件TensorBoardTensorBoard。TensorBoardTensorBoard应用架构应用架构TensorFlow ImageTensorFlow Image摘要
7、信息如图所示,该示例中显示了测试数据和训练数据中摘要信息如图所示,该示例中显示了测试数据和训练数据中的手写数字图片。的手写数字图片。图像可视化图像可视化TensorFlowTensorFlow图模型如图所示,可清晰地展示模型的训练流程,其中的每个方框图模型如图所示,可清晰地展示模型的训练流程,其中的每个方框表示变量所在的命名空间。表示变量所在的命名空间。数据流图可视化数据流图可视化在在TensorBoard中的重要函数。中的重要函数。tf.summary.scalar tf.summary.image tf.summary.histogram2-2 2-2 Keras简介简介 KerasKer
8、as是一个用是一个用PythonPython编写的高级神经网络编写的高级神经网络API,API,它能够以它能够以TensorFlow,CNTK,TensorFlow,CNTK,或者或者TheanoTheano作为后端运行。作为后端运行。Keras的设计原则是:的设计原则是:用户友好;用户友好;模块化;模块化;易扩展性;易扩展性;易于易于Python实现。实现。KerasKeras的使用的使用KerasKeras的工作过程主要包括:的工作过程主要包括:导入所需要的全部模块;导入所需要的全部模块;堆叠模型;堆叠模型;编译;编译;训练。训练。KerasKeras的可视化的可视化Keras的可视化依赖
9、的可视化依赖pydot-ng和和graphviz。用命令行输入:。用命令行输入:pipinstallpydot-ng&brewinstallgraphvizkeras.utils.vis_utils模模块块提提供供了了画画出出Keras模模型型的的函函数数(利利用用graphviz),该该函函数数将画出模型结构图,并保存成图片:将画出模型结构图,并保存成图片:fromkeras.utilsimportplot_modelplot_model(model,to_file=model.png)plot_model接收两个可选参数:接收两个可选参数:show_shapes:指定是否显示输出数据的形状,默认为:指定是否显示输出数据的形状,默认为Falseshow_layer_names:指定是否显示层名称:指定是否显示层名称,默认为默认为True