




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
人工智能技术基础第七章TensorFlow深度学习框架02TensorFlow安装03TensorFlow基础知识04TensorFlow实战01TensorFlow简介深度学习框架介绍scikit-learn专注于传统的机器学习算法,对常用的机器学习算法进行了封装,包括回归、分类、聚类等方法。Keras是一个用Python编写的高级神经网络API,它能够以TensorFlow,CNTK,或者Theano作为后端运行错误!未找到引用源。。TensorFlow是谷歌推出的深度学习框架,是一个端到端开源机器学习平台。借助TensorFlow,初学者和专家可以轻松创建适用于桌面、移动、网络和云端环境的机器学习模型错误!未找到引用源。。TensorFlow作为后端框架,提供张量运算、微分运算等低层次的运算。Keras作为前端框架,提供了模型级的API。TensorFlow是目前最流行的深度学习框架,本书主要介绍此框架的基础知识和使用。Pytorch也是一个端到端开源机器学习框架。和TensorFlow相比,Pytorch在学术届广泛使用,而TensorFlow在工业界广泛使用。PaddlePaddle(飞桨)以百度的深度学习技术研究和业务应用为基础,是中国首个自主研发、功能完备、开源开放的产业级深度学习平台,集深度学习核心训练和推理框架、基础模型库、端到端开发套件和丰富的工具组件于一体TensorFlow系统架构CAPI把TensorFlow分割为前端和后端,前端(Python/C++/JavaClient)基于CAPI触发TensorFlow后端程序运行。Traininglibraries和Inferencelibs是模型训练和推导的库函数,为用户开发应用模型使用。DistributedMaster将用户的请求转换为一系列任务的执行。给定一个计算图和操作定义后,它将计算图分解为子图,不同的子图分片运行在不同的设备上。DataflowExecutor处于各个任务中,它接收Master发过来的请求,调度执行子图操作。Kernel为TensorFlow中算法操作的具体实现,如卷积操作,激活操作等。RPC和RDMA为网络层,主要负责传递神经网络算法参数。CPU和GPU为设备层,主要负责神经网络算法中具体的运算操作。第七章TensorFlow深度学习框架02TensorFlow安装03TensorFlow基础知识04TensorFlow实战01TensorFlow简介系统要求Python3.5-3.8,若要支持Python3.8,需要使用TensorFlow2.2或更高版本。pip19.0或更高版本。操作系统:Windows7或更高版本(64位)。Ubuntu16.04或更高版本(64位)。macOS10.12.6(Sierra)或更高版本(64位)(不支持GPU)。4.如要使用GPU运算,需要支持CUDA®的显卡(适用于Ubuntu和Windows)。软件版本信息WindowsWindows10,64位Python3.8.xTensorFlow2.4.x安装方式1:从Python开始下载Python安装文件配置清华镜像安装常用科学计算包安装TensorFlow第一个TensorFlow代码安装方式2:从Anaconda开始安装Anaconda配置清华镜像源安装TensorFlow第一个TensorFlow代码第七章TensorFlow深度学习框架02TensorFlow安装03TensorFlow基础知识04TensorFlow实战01TensorFlow简介张量张量(Tensor)是具有统一类型(称为
dtype)的多维数组。所有张量都是不可变的,永远无法更新张量的内容,只能创建新的张量。张量有最重要的2个属性:形状shape:张量的每个维度(轴)的长度(元素数量)数据类型dtype:float32、int32、或者string等张量0D张量只包含一个数字,有0个维度,又称为标量。rank_0_tensor=tf.constant(4)print(rank_0_tensor)张量1D张量包含一个一维数组,可以看作由0D张量组成的数组,有1个维度,又称为向量。示例代码如下:rank_1_tensor=tf.constant([2.0,3.0,4.0])print(rank_1_tensor)张量2D张量可以看作由1D张量组成的数组,有2个维度,又称为矩阵。示例代码如下:rank_2_tensor=tf.constant([[1,2],[3,4],[5,6]],dtype=tf.float16)
print(rank_2_tensor)7.1.6 张量3D张量可以看作由2D张量组成的数组,有3个维度。示例代码如下:rank_3_tensor=tf.constant([[[0,1,2,3,4],
[5,6,7,8,9]],
[[10,11,12,13,14],
[15,16,17,18,19]],
[[20,21,22,23,24],
[25,26,27,28,29]],])
print(rank_3_tensor)张量4D张量可以看作由3D张量组成的数组,有4个维度。示例代码如下:#生成一个(3,3,2,5)的4维数组,值为[0,2)之间的随机整数rand_4_array=np.random.randint(0,2,size=(3,3,2,5))
#将4维numpy数组转化维4D张量
rank_4_tensor=tf.convert_to_tensor(rand_4_array)
print(rank_4_tensor.shape)
print(rank_4_tensor.numpy())
程序打印出4D张量rank_4_tensor的形状和数据信息,运行结果如下:(3,3,2,5)[[[[00011][10110]]
[[10001][01100]]
[[10111][01001]]]……张量在TensorFlow中,各个维度的含义是有规范的。一般按照从全局到局部的顺序进行排序:首先是批次维度,随后是空间维度,最后是每个位置的特征。示例代码中4D张量4个维度的典型顺序含义为(Batch,Width,Height,Features)张量张量运算可以分为标量运算、向量运算、以及矩阵运算。标量运算:对张量实施逐元素运算,包括加、减、乘、除、乘方以及三角函数、指数、对数等常见函数。#张量运算:标量运算a=tf.constant([[1,2],
[3,4]])
b=tf.constant([[0,0],
[1,0]])
print(a+b)
print(a-b)
print(a*b)
print(a/b)
张量向量运算:只在一个特定轴上运算,将一个向量映射到一个标量或者另外一个向量。#张量运算:向量运算A=tf.constant([[2,20,30,3,6],
[1,1,1,1,1]])
print(tf.math.reduce_sum(A))
print(tf.math.reduce_max(A))
B=tf.constant([[2,20,30,3,6],
[3,11,16,1,8],
[14,45,23,5,27]])
print(tf.math.reduce_sum(B,0))#沿0轴,求和
print(tf.math.reduce_sum(B,1))#沿1轴,求和
print(tf.math.reduce_max(B,0))#沿0轴,求最大值
print(tf.math.reduce_max(B,1))#沿1轴,求最大值张量矩阵运算:矩阵必须是二维的,包括矩阵乘法、矩阵转置、矩阵逆、矩阵行列式、矩阵求特征值、矩阵分解等运算#张量运算:矩阵运算#矩阵转置
A_trans=tf.linalg.matrix_transpose(A)
print(A_trans)
#矩阵点积
print(tf.linalg.matmul(B,A_trans))激活函数relu函数(RectifiedLinearUnit),即线性整流函数。我们可以使用matplotlib画出函数曲线,代码及图形如下:#生成x轴数据,-10到10之间平均分布的100个数x=np.linspace(-10,10,100)
fig,ax=plt.subplots()#创建图形对象及坐标系
ax.plot(x,keras.activations.relu(x),label='relu')#设置x轴及y轴的数据
ax.set_xlabel('xlabel')#设置x轴标签
ax.set_ylabel('ylabel')#设置y轴标签
ax.set_title("ReluPlot")#设置标题
ax.legend()#显示图例激活函数sigmoid函数也叫Logistic函数,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。我们可以使用matplotlib画出函数曲线,代码及图形如下:#生成x轴数据,-10到10之间平均分布的100个数x=np.linspace(-10,10,100)
fig,ax=plt.subplots()#创建图形对象及坐标系
#设置x轴及y轴的数据
ax.plot(x,keras.activations.sigmoid(x),label='sigmoid')
ax.set_xlabel('xlabel')#设置x轴标签
ax.set_ylabel('ylabel')#设置y轴标签
ax.set_title("SigmoidPlot")#设置标题
ax.legend()#显示图例激活函数softmax函数又称归一化指数函数,能将一个含任意实数的K维向量z“压缩”到另一个K维实向量σ(z)中,使得每一个元素的范围都在(0,1)之间,并且所有元素的和为1。该函数多用于多分类问题中,为每个输出分类的结果都赋予一个概率值,表示属于每个类别的可能性。层卷积层Convolutionlayers常用在图像数据中,对二维输入进行滑动窗卷积。tf.keras.layers.convolutional.Conv2D( filters,kernel_size,strides=(1,1),padding="valid",data_format=None,dilation_rate=(1,1),groups=1,activation=None,use_bias=True,kernel_initializer="glorot_uniform",bias_initializer="zeros",kernel_regularizer=None,bias_regularizer=None,activity_regularizer=None,kernel_constraint=None,bias_constraint=None)参数名说明filters卷积核的数目(即输出的维度),例如:16kernel_size卷积核的宽度和长度。如为单个整数,则表示各个维度长度相同。例如:3strides卷积的步长。如为单个整数,则表示在各个维度的相同步长。padding补0策略,取值为valid、same。valid表示不补0;same代表保留边界处的卷积结果,这样输出shape与输入shape相同。activation激活函数。如果不指定该参数,将不会使用任何激活函数。data_format输入张量的维度顺序,取值为channels_last(默认值)、channels_first。层池化层Poolinglayers以2维最大值池化层(MaxPooling2Dlayer)为例,该层常跟在卷积层后,对卷积层的输出进行采样,减少需要计算的元素。tf.keras.layers.MaxPooling2D(pool_size=(2,2),strides=None,padding="valid",data_format=None)参数名说明pool_size整数或长为2的整数tuple,代表在两个方向(竖直,水平)上的下采样因子,如取(2,2)将使图片在两个维度上均变为原长的一半。为整数意为各个维度值相同且为该数字。strides整数或长为2的整数tuple,或者None,步长值。padding补0策略,取值为valid、same。valid表示不补0;same代表在边界处补0,这样输出shape与输入shape相同。data_format输入张量的维度顺序,取值为channels_last(默认值)、channels_first。层压平层(Flattenlayer)用来将输入压平,即把多维的输入一维化,常用在从卷积层到全连接层的过渡。Flatten不影响batch的大小。参数名说明data_format输入张量的维度顺序,取值为channels_last(默认值)、channels_first。tf.keras.layers.Flatten(data_format=None)层丢弃层(Dropoutlayer)将在训练过程中每次更新参数时按一定概率随机断开输入神经元,用于防止过拟合。tf.keras.layers.core.Dropout(rate,noise_shape=None,seed=None)参数名说明rate0~1之间的浮点数,控制需要断开的神经元的比例层丢弃层(Dropoutlayer)将在训练过程中每次更新参数时按一定概率随机断开输入神经元,用于防止过拟合。tf.keras.layers.core.Dropout(rate,noise_shape=None,seed=None)参数名说明rate0~1之间的浮点数,控制需要断开的神经元的比例模型创建模型最简单的模型是Sequential顺序模型,它由多个网络层线性堆叠。定义tf.keras.Sequential()示例#使用Sequential创建包含3个层的顺序模型model=keras.Sequential(
[
layers.Dense(2,activation="relu",name="layer1"),
layers.Dense(3,activation="relu",name="layer2"),
layers.Dense(4,name="layer3"),
]
)
#调用模型
x=tf.ones((3,3))
y=model(x)模型编译模型在完成了模型的构建后,可以使用compile方法来编译模型,这一步需要配置优化器、损失函数。定义Mpile(optimizer="rmsprop",loss=None,metrics=None,loss_weights=None,weighted_metrics=None,run_eagerly=None,steps_per_execution=None
)参数名说明optimizer优化器名称或优化器类实例,见tf.keras.optimizers。可选优化函数如下:SGD、RMSprop、Adam、AdadeltaAdagrad、Adamax、Nadam、Ftrl。loss损失函数名称、损失函数或tf.keras.losses.Loss类实例。可选损失函数如下:概率损失函数binary_crossentropy、categorical_crossentropy、sparse_categorical_crossentropy、poisson、kl_divergence回归损失函数mean_squared_error、mean_absolute_error、mean_absolute_percentage_error、mean_squared_logarithmic_error、cosine_similarity、huber、log_cosh铰链损失函数hinge、squared_hinge、categorical_hinge模型定义Model.fit(
x=None,y=None,batch_size=None,epochs=1,verbose=1,callbacks=None,alidation_split=0.0,validation_data=None,shuffle=True,lass_weight=None,sample_weight=None,initial_epoch=0,teps_per_epoch=None,validation_steps=None,validation_batch_size=None,alidation_freq=1,max_queue_size=10,workers=1,se_multiprocessing=False,
)参数名说明x输入数据,可以是numpy数据、TensorFlow张量等。y目标数据,需要和x配套。batch_size整数,梯度更新时样本的数量。epochs整数,数据集训练多少遍。validation_split浮点数,范围0~1,从训练集分离出测试集的比例。训练模型现在,可以使用fit方法进行训练模型了。模型模型预测模型训练好后,可以使用predict方法来进行预测。Model.predict(x,batch_size=None,verbose=0,steps=None,callbacks=None,max_queue_size=10,workers=1,use_multiprocessing=False,
)参数名说明x输入数据,可以是numpy数据、TensorFlow张量等。batch_size整数,每一批预测的样本数量。模型模型保存训练好的模型可以保存到磁盘。模型文件有2种格式:h5和SavedModel。如果filepath参数以.h5结尾,则保存为h5格式。如果filepath参数为目录,则保存为SavedModel格式。定义M
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 油气田开发过程中的能源管理与优化考核试卷
- 电子书版权交易市场的现状与挑战考核试卷
- 木材干燥与锯材加工考核试卷
- 灯具回收与再利用考核试卷
- 生物技术在植物抗逆性育种中的应用考核试卷
- 燃气具企业供应链协同与物流优化考核试卷
- 医疗数据要素市场交易电子审批管理
- 泌尿系统上尿路结石护理
- GPS基础知识与主流应用方案
- 期中模拟卷(云南专用)-2024-2025学年八年级英语下学期核心素养素质调研模拟练习试题(考试版)A4
- 科研项目台账
- 产品零部件防锈规定
- 2023年全国中学生生物学联赛试题(word版有答案)
- 浙江省嘉兴市地图矢量PPT模板(图文)
- AGC 系统安全事故应急处置程序
- 变位齿轮与变位齿轮传动
- 烟化炉车间技术操作规程-附一:烟化炉开炉、停炉、故障处理及正常操作原则
- TGIA 004-2020 垃圾填埋场地下水污染防治技术指南
- 《城轨客运组织》项目三课件
- GB 20664-2006有色金属矿产品的天然放射性限值
- 赣州市芙蓉区第二小学美育专项发展规划
评论
0/150
提交评论