Tensorflow入门到实战 拓展(Tensorflow常用函数)

tf.argmax                axis

y_pre = [[5,1,1,0,1],[2,3,-4,5,6]]
​
session.run(tf.arg_max(y_pre,1))
array([0, 4], dtype=int64)

y_pre
session.run(tf.arg_max(y_pre,0))
array([0, 1, 0, 1, 1], dtype=int64)

0是纵轴比较,1是横向比较

tf.cast

correct = [[ True,False  ,True],[False , True ,True]]
​
session.run(tf.cast(correct,tf.float32))
array([[ 1.,  0.,  1.],
       [ 0.,  1.,  1.]], dtype=float32)

)
session.run(tf.reduce_mean(tf.cast(correct,tf.float32)))
0.66666669

tf.equal()

import tensorflow as tf
import numpy as np
 
A = [[1,3,4,5,6]]
B = [[1,3,4,3,2]]
 
with tf.Session() as sess:
    print(sess.run(tf.equal(A, B)))

truncated_normal

作为tensorflow里的正态分布产生函数,这两个函数的输入参数几乎完全一致,

而其主要的区别在于,tf.truncated_normal的输出如字面意思是截断的,而截断的标准是2倍的stddev。

举例,当输入参数mean = 0 , stddev =1时,

使用tf.truncated_normal的输出是不可能出现[-2,2]以外的点的,

而如果shape够大的话,tf.random_normal却会产生2.2或者2.4之类的输出。
 

 

在计算损失时,通常会用到reduce_sum()函数来进行求和,但是在使用过程中常常会搞不清楚具体是怎样进行计算的,通过查阅资料,逐渐搞清楚了这个函数的用法,下面就来详细解释一下。

在TensorFlow官方文档中有这样的解释: 

其实在reduce_sum()中,是从维度上去考虑的。其中的参数reduction_indices很容易搞蒙圈,上个图加深理解吧这里写图片描述

 

其实在reduce_sum()中,是从维度上去考虑的。其中的参数reduction_indices很容易搞蒙圈,上个图加深理解吧。 

这里写图片描述

调用reduce_sum(arg1, arg2)时,参数arg1即为要求和的数据,arg2有两个取值分别为0和1,通常用reduction_indices=[0]或reduction_indices=[1]来给arg2传递参数。从上图可以看出,当arg2 = 0时,是纵向对矩阵求和,原来矩阵有几列最后就得到几个值;相似地,当arg2 = 1时,是横向对矩阵求和,原来矩阵有几行最后就得到几个值;当省略arg2参数时,默认对矩阵所有元素进行求和,最后得到一个值。

看到这里,函数名的前缀为什么是reduce_其实也就很容易理解了,reduce就是“对矩阵降维”的含义,下划线后面的部分就是降维的方式,在reduce_sum()中就是按照求和的方式对矩阵降维。那么其他reduce前缀的函数也举一反三了,比如reduce_mean()就是按照某个维度求平均值,等等。

原文:https://blog.csdn.net/chengshuhao1991/article/details/78545723 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章