TensorFlow相关函数解释整理

1、tf.layers.dense()

dense :全连接层  相当于添加一个层

https://blog.csdn.net/yangfengling1023/article/details/81774580/

2、tf.nn.relu() 

https://blog.csdn.net/tiaojingtao1293/article/details/81433066

线性整流函数(Rectified Linear Unit, ReLU),又称修正线性单元。其定义如下图,在横坐标的右侧,ReLU函数为线性函数。在横坐标的右侧,ReLU函数为值为0。

tf.nn.relu()函数的目的是,将输入小于0的值幅值为0,输入大于0的值不变。

3、tf.truncated_normal()

tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)

http://www.zzvips.com/article/133363.html

从截断的正态分布中输出随机值。生成的值服从具有指定平均值和标准偏差的正态分布,如果生成的值大于平均值2个标准偏差的值则丢弃重新选择。

shape: 一维的张量,也是输出的张量。
mean: 正态分布的均值。
stddev: 正态分布的标准差。
dtype: 输出的类型。
seed: 一个整数,当设置之后,每次生成的随机数都一样。
name: 操作的名字。

4 、tf.contrib.layers.batch_norm()

可以用来构建待训练的神经网络模型

https://blog.csdn.net/qq_30638831/article/details/82877109

5、tf.slice()

https://blog.csdn.net/nini_coded/article/details/79852031

tf.slice(inputs, begin, size, name)

作用:从列表、数组、张量等对象中抽取一部分数据

begin和size是两个多维列表,他们共同决定了要抽取的数据的开始和结束位置

begin表示从inputs的哪几个维度上的哪个元素开始抽取
size表示在inputs的各个维度上抽取的元素个数

若begin[]或size[]中出现-1,表示抽取对应维度上的所有元素
 

6、tf.argmax()

https://blog.csdn.net/u012300744/article/details/81240580

tf.argmax(input,axis)根据axis取值的不同返回每行或者每列最大值的索引。

axis=0时比较每一列的元素,将每一列最大元素所在的索引记录下来,最后输出每一列最大元素所在的索引数组

axis=1的时候,将每一行最大元素所在的索引记录下来,最后返回每一行最大元素所在的索引数组。

7、tf.equal()

https://blog.csdn.net/m0_37546065/article/details/89969954

equal(x, y, name=None)

equal,相等的意思。顾名思义,该函数用来判断相等
tf.equal(A, B)是对比这两个矩阵或者向量的相等的元素,如果是相等的那就返回True,反正返回False,返回的值的矩阵维度和A是一样的
由于是逐元素的对比,所以x和y的维度也要相同
其中:

x,y:要比较的两个张量
name:操作名称,默认null

8、tf.cast()

https://blog.csdn.net/dcrmg/article/details/79747814

tf.cast()函数的作用是执行 tensorflow 中张量数据类型转换,比如读入的图片如果是int8类型的,一般在要在训练前把图像的数据格式转换为float32。

cast(x, dtype, name=None)
  • 第一个参数 x:   待转换的数据(张量)
  • 第二个参数 dtype: 目标数据类型
  • 第三个参数 name: 可选参数,定义操作的名称

9、tf.reduce_mean()

https://blog.csdn.net/dcrmg/article/details/79797826

tf.reduce_mean 函数用于计算张量tensor沿着指定的数轴(tensor的某一维度)上的的平均值,主要用作降维或者计算tensor(图像)的平均值。 

reduce_mean(input_tensor,
                axis=None,
                keep_dims=False,
                name=None,
                reduction_indices=None)

第一个参数input_tensor: 输入的待降维的tensor;
第二个参数axis: 指定的轴,如果不指定,则计算所有元素的均值;
第三个参数keep_dims:是否降维度,设置为True,输出的结果保持输入tensor的形状,设置为False,输出结果会降低维度;
第四个参数name: 操作的名称;
第五个参数 reduction_indices:在以前版本中用来指定轴,已弃用;


10、tf.placeholder()

https://blog.csdn.net/kdongyi/article/details/82343712

placeholder()函数是在神经网络构建graph的时候在模型中的占位,此时并没有把要输入的数据传入模型,它只会分配必要的内存。等建立session,在会话中,运行模型的时候通过feed_dict()函数向占位符喂入数据。

tf.placeholder(
    dtype,
    shape=None,
    name=None
)

参数:

 

  1. dtype:数据类型。常用的是tf.float32,tf.float64等数值类型
  2. shape:数据形状。默认是None,就是一维值,也可以是多维(比如[2,3], [None, 3]表示列是3,行不定)
  3. name:名称

 11、tf.nn.softmax_cross_entropy_with_logits_v2()

https://zhuanlan.zhihu.com/p/95627047

tf.nn.softmax_cross_entropy_with_logits函数是TensorFlow中常用的求交叉熵的函数

反向传播时,logits和labels都会反向传播

tf.nn.softmax_cross_entropy_with_logits_v2(
    _sentinel=None,
    labels=None,
    logits=None,
    dim=-1,
    name=None
)
  • _sentinel:一个内部参数,具体作用还未可知
  • labels:真实标签,注意是一个onehot向量,且长度跟logits一样长,长度为类别数
  • logits:模型最后一层的输出,注意不要过softmax函数,维度为[batch_size,numclass]
  • dim: 按照哪一个维度去求的,默认-1也就是最后一维,也就是按照类别数来求的,如果你的类别数在第一维的话,这里必须要改成0

算出的结果表示真实标签和预测标签之间的差距,使用的是softmax交叉熵来进行计算的。(计算原理后续会说明) 

12、tf.train.AdamOptimizer(1e-4).minimize()

https://blog.csdn.net/qq_39852676/article/details/98477214

tf.train.AdamOptimizer()函数是Adam优化算法:是一个寻找全局最优点的优化算法,引入了二次方梯度校正。

tf.train.AdamOptimizer.__init__(
    learning_rate=0.001, 
    beta1=0.9, 
    beta2=0.999, 
    epsilon=1e-08, 
    use_locking=False, 
    name='Adam'
)

参数:

learning_rate:张量或浮点值。学习速率
beta1:一个浮点值或一个常量浮点张量。一阶矩估计的指数衰减率
beta2:一个浮点值或一个常量浮点张量。二阶矩估计的指数衰减率
epsilon:数值稳定性的一个小常数
use_locking:如果True,要使用lock进行更新操作
name:应用梯度时为了创建操作的可选名称。默认为“Adam”
本质上是带有动量项的RMSprop,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。


13、tf.Session()

tf.Session()创建一个会话,当上下文管理器退出时会话关闭和资源释放自动完成

https://cloud.tencent.com/developer/article/1454137

14、sess.run()

run(fetches,   feed_dict=None,    options=None,    run_metadata=None) 

当构建完图后,需要在一个session会话中启动图,第一步是创建一个Session对象。

为了取回(Fetch)操作的输出内容, 可以在使用 Session 对象的 run()调用执行图时,传入一些 tensor, 这些 tensor 会帮助你取回结果。

sess.run(tf.global_variables_initializer())  初始化模型的参数

https://blog.csdn.net/u012436149/article/details/78291545

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值