概述
话不多说,直接干货
先提几个基础概念:
特征、标签对:机器学习过程重要的两个概念,一组特征对应一个标签。
梯度:函数对各参数求偏导后的向量,用来表示下降程度。提出这个概念是为了方便快捷的找到损失函数的最小值,后续会有梯度下降、梯度消失、梯度爆炸等相关概念。
梯度下降:沿着损失函数梯度下降的方向,寻找损失函数的最小值,得到最优参数的方法。
下面是TensorFlow的基础函数:
以下会有维度这个词,因为TensorFlow提出张量概念(和c语言的变量相似,但是更加突出维度空间情况),张量具有维度的特征,简单来说就是(1)表示一个数,([1,2][2,1])表示一个二维的矩阵,并不复杂
为了方便代码,一般在程序开头输入 import tensorflow as tf ,以下tf均代表TensorFlow
tf.zeros(维度)、tf.ones(维度) 、 tf.fill(维度,指定值) 分别代表创建全为0、1、制定值的数、数组、矩阵,维度为1,就是数,增加维度,就变成数组、矩阵、多维空间。
tf.random.normal(维度,mean=均值,stddev=标准差) 表示生成正态分布的随机数,均值,标准差可以自己设置
tf.random.truncated_normal(维度,mean=均值,stddev=标准差) 表示生成截断式正态分布的随机数,和上面的不同之处是,这个函数生成的数一定会在两倍标准差之内,可能更靠近对称轴。
tf.random.uniform(维度,minval=最小值,maxval=最大值) 表示生成均匀分布随机数,在最小值和最大值之间
tf.cast(张量名称,type=) 强制类型转换,比如整形转换成浮点型32位
tf.reduce_min(张量名称)、tf.reduce_max(张量名称) 计算张量中元素的最小、最大值
axis=0、axis=1 分别代表的是按列操作、按行操作
tf.Variable() 将变量标记为可训练,被标记的变量会在反向传播中记录梯度信息,神经网络训练中,常用该函数标记待训练参数,例如:tf.Variable(tf.random.normal()[2,2],mean=0,stdder=1),注意Variable首字母大写,小写会报错
tf.add(),tf.subtract(), tf.multiply() , tf.divide() ,tf.square() , tf.pow() , tf.matmul() 分别代表数学运算加、减、乘、除、平方、次方、开方、矩阵乘 ,注意运算必须是相同维度
tf.data.Dataset.from_tensor_slices((输入特征,标签)) 代表生成特征/标签对,构建数据集
with tf.GradientTape() as type:
若干计算过程
grad = type.gradient(函数,对谁求导) 这三行代表的是计算过程中对函数进行求导,常见的有对损失函数求梯度下降
enumerate(列表名) 枚举,就是一个被命名的整数型常数的聚合
举例:
seq= ['one','two','three']
for i,element in enumerate(seq):
print(i,element) 结果就是【0,one】,【1,two】,【2,three】
tf.one_hot() 代表独热编码,1表示是,0表示非 别想太复杂,就是将待转换的数据转换成one—_hot形式的数据输出,tf.one_hot(待转换数据,depth=几分类)
tf.nn.softmax(x) 是输出符合概率分布 机器学习不管是分类还是回归问题都要把最后的结果转换成分布概率的问题,概率大的结果就是我们的估计结果,所以最后的结果必须要转化成概率
变量.assign_sub() 代表的是参数变量的自减,变量=变量-1,被用在神经网络中参数的自更新,必须是可指定,可训练类型,也就是上面提到的Variable类型
tf.argmax(张量名称,axis = 操作轴) axis=0,行操作,axis,列操作,这个函数是返回张量沿着指定维度最大值的索引,注意是索引,不是最大值,是最大值的位置
相关讲解视频,可以结合理解,
https://www.bilibili.com/video/BV1Cg4y1q7Xq?p=6
最后
以上就是隐形皮带为你收集整理的TensorFlow基本函数的全部内容,希望文章能够帮你解决TensorFlow基本函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复