tensorflow中的常见方法

1.tf.argmax(input,axis)

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

  • axis = 0: 

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

test[0] = array([1, 2, 3])
test[1] = array([2, 3, 4])
test[2] = array([5, 4, 3])
test[3] = array([8, 7, 2])
# output   :    [3, 3, 1]      
  • axis = 1 :

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

test[0] = array([1, 2, 3])  #2
test[1] = array([2, 3, 4])  #2
test[2] = array([5, 4, 3])  #0
test[3] = array([8, 7, 2])  #0

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

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

(原文链接:https://blog.csdn.net/kdongyi/article/details/82343712)

Tensorflow的设计理念称之为计算流图,在编写程序时,首先构筑整个系统的graph,代码并不会直接生效,这一点和python的其他数值计算库(如Numpy等)不同,graph为静态的,类似于docker中的镜像。然后,在实际的运行时,启动一个session,程序才会真正的运行。这样做的好处就是:避免反复地切换底层程序实际运行的上下文,tensorflow帮你优化整个系统的代码。 所以placeholder()函数是在神经网络构建graph的时候在模型中的占位,此时并没有把要输入的数据传入模型,它只会分配必要的内存。等建立session,在会话中,运行模型的时候通过feed_dict()函数向占位符喂入数据。

3.tf.multiply(x, y, name=None) 

参数: 
x: 一个类型为:half, float32, float64, uint8, int8, uint16, int16, int32, int64, complex64, complex128的张量
y: 一个类型跟张量x相同的张量  

返回值: 
x * y element-wise. 
  • multiply这个函数实现的是元素级别的相乘,也就是两个相乘的数元素各自相乘,而不是矩阵乘法,注意和tf.matmul区别。 
  • 两个相乘的数必须有相同的数据类型,不然就会报错

4.tf.matmul(a, b, transpose_a=False, transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=False, b_is_sparse=False, name=None)

参数: 
a: 一个类型为 float16, float32, float64, int32, complex64, complex128 且张量秩 > 1 的张量
b: 一个类型跟张量a相同的张量。 
transpose_a: 如果为真, a则在进行乘法计算前进行转置
transpose_b: 如果为真, b则在进行乘法计算前进行转置
adjoint_a: 如果为真, a则在进行乘法计算前进行共轭和转置 
adjoint_b: 如果为真, b则在进行乘法计算前进行共轭和转置
a_is_sparse: 如果为真, a会被处理为稀疏矩阵
b_is_sparse: 如果为真, b会被处理为稀疏矩阵
name: 操作的名字(可选参数)
 
返回值: 
一个跟张量a和张量b类型一样的张量且最内部矩阵是a和b中的相应矩阵的乘积
  • 输入必须是矩阵(或者是张量秩 >2的张量,表示成批的矩阵),并且其在转置之后有相匹配的矩阵尺寸
  • 两个矩阵必须都是同样的类型,支持的类型如下:float16, float32, float64, int32, complex64, complex128

5.tf.cast(x,dtype,name=None)

将 x 的数据格式转化成 dtype. 例如,原来 x 的数据格式是 bool,那么将其转化成 float 以后,就能够将其转化成 0 和 1 的序列。反之也可以.

a = tf.Variable([0,0,0,1,1])
b = tf.cast(a,dtype=tf.bool)
sess = tf.Session()
sess.run(tf.initialize_all_variables())
print(sess.run(b)) 

>>>[ False False False  True  True]

猜你喜欢

转载自blog.csdn.net/weixin_42149550/article/details/99564853