tf.argmax, tf.equal, tf.cast, tf.truncated_normal, tensorflow.placeholder的用法

1. tf.argmax()函数

tf.argmax可以认为就是np.argmax。tensorflow使用numpy实现的这个API。 
  简单的说,tf.argmax就是返回最大的那个数值所在的下标。tf.argmax(array,axis)

    当axis=1时返回每列最大值的下标,当axis=0时返回每行最大值的下班。

2. tf.equal()函数

tf.equal(A,B)是对比这两个矩阵或者向量的相等的元素,如果是相等的那就返回True,反正返回False,返回的值的矩阵维度和A是一样的

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

3. tf.cast()函数

tf.cast(x, dtype)将x的数据格式转化成dtype.

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

4. tf.truncated_normal()

tf.truncated_normal(shape, mean, stddev):shape表示生成张量的维度,mean是均值,stddev是标准差。这个函数产生正太分布,均值和标准差自己设定。这是一个截断的产生正太分布的函数,就是说产生正太分布的值如果与均值的差值大于两倍的标准差,那就重新生成。和一般的正太分布的产生随机数据比起来,这个函数产生的随机数与均值的差距不会超过两倍的标准差,但是一般的别的函数是可能的。

import tensorflow as tf;  
import numpy as np;  
import matplotlib.pyplot as plt;  
 
c = tf.truncated_normal(shape=[10,10], mean=0, stddev=1)  
 
with tf.Session() as sess:  
    print(sess.run(c))
    
[[ 0.56077307  1.74287605 -0.15655719  0.87136668 -0.4219175   0.94079614
  -1.31186545  1.94287431  0.70748854  1.15509737]
 [ 0.32469562 -0.91890186 -0.44398952  1.25986481 -1.07295966  0.21889997
   0.19389877 -1.22909117  1.34865403  0.87812191]
 [-0.83542323 -0.05598836 -1.05256093 -1.16475403 -0.17121609 -0.55075479
  -0.37847248  0.14151201  0.36596569  0.55171227]
 [ 0.45216689  0.12429248 -0.4333829  -0.00368057 -0.20933141  0.5465408
   1.06096387  1.47238612 -1.99268937  1.28203201]
 [ 0.36932501  0.30012983  1.94679129  0.59601396 -0.16721351 -0.42786792
   0.917597   -1.6504811  -0.81060582 -0.35126168]
 [-1.48954999 -0.42889833  0.31517059  1.00009787  0.26073182  1.26285052
  -1.80997884  0.51399821 -0.27673215  0.15389352]
 [ 0.8669793  -0.28650126  1.39484227 -0.4041909  -1.70028269  0.58513969
   0.75772232 -0.47386578 -0.34529254 -0.71658897]
 [ 0.74709773 -0.0835886   1.14453304  0.70367438  0.07037418 -0.15808868
   0.23158503 -0.67268801  0.55869597  0.12777361]
 [-0.52604282  0.64181858 -0.04147881  0.78596973  0.69087744  0.56500375
  -1.12409449 -0.42864376  0.30804652  1.33116138]
 [-1.36940789 -0.4526186  -0.87445366  0.19748467 -0.06541829 -0.2672275
   0.63084471  0.76155263  0.83874393  0.91775542]]

5. tensorflow.placeholder()

tensorflow.placeholder(),placeholder是占位符的意思,在tensorflow中类似于函数参数,在执行的时候再赋具体的值。

参数含义: 
dtype:数据类型。常用的是tf.float32,tf.float64等数值类型 
shape:数据形状。默认是None,就是一维值,也可以是多维,比如[2,3], [None, 3]表示列是3,行不定 
name:名称。
placeholder,中文意思是占位符,在tensorflow中类似于函数参数,运行时必须传入值。

#!/usr/bin/env python
# _*_ coding: utf-8 _*_

import tensorflow as tf
import numpy as np

# 定义placeholder
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)

# 定义乘法运算
output = tf.multiply(input1, input2)

# 通过session执行乘法运行
with tf.Session() as sess:
    # 执行时要传入placeholder的值
    print sess.run(output, feed_dict = {input1:[7.], input2: [2.]})


执行结果如下:

[ 14.]

还有如下的使用规则: 

x = tf.placeholder(tf.float32, shape=(88, 88))  
y = tf.matmul(x, x)  

with tf.Session() as sess:  
  print(sess.run(y))  # ERROR: . you must feed a value for #placerholder

  rand_array = np.random.rand(88, 88)  
  print(sess.run(y, feed_dict={x: rand_array}))  # Right 

6. tf.sparse_placeholder

x = tf.sparse_placeholder(tf.float32)
y = tf.sparse_reduce_sum(x)

with tf.Session() as sess:
  print(sess.run(y))  # ERROR: will fail because x was not fed.

  indices = np.array([[3, 2, 0], [4, 5, 1]], dtype=np.int64)
  values = np.array([1.0, 2.0], dtype=np.float32)
  shape = np.array([7, 9, 2], dtype=np.int64)
  print(sess.run(y, feed_dict={
    x: tf.SparseTensorValue(indices, values, shape)}))  # Will succeed.
  print(sess.run(y, feed_dict={
    x: (indices, values, shape)}))  # Will succeed.

  sp = tf.SparseTensor(indices=indices, values=values, dense_shape=shape)
  sp_value = sp.eval(session=sess)
  print(sess.run(y, feed_dict={x: sp_value}))  # Will succeed

函数参数:

  • dtype:张量中要提供的 values 元素的类型.
  • shape:要提供的张量的形状(可选).如果未指定形状,则可以提供任何形状的稀疏张量.
  • name:前缀操作的名称(可选).

函数返回值:

tf.sparse_placeholder 函数返回一个可以用作提供值的句柄的 SparseTensor,但不能直接计算.

可能引发的异常:

  • RuntimeError:如果 eager 执行已启用,则引发该异常.

7. tf.random_uniform()

tf.random_uniform((4, 4), minval=low,maxval=high,dtype=tf.float32)))返回4*4的矩阵,产生于low和high之间,产生的值是均匀分布的。

例如:

import tensorflow as tf
import numpy as np
 
with tf.Session() as sess:
    print(sess.run(tf.random_uniform(
        (4, 4), minval=-0.5,
        maxval=0.5,dtype=tf.float32)))
输出:
[[ 0.23706067  0.42579055  0.16444612  0.12134457]
 [ 0.14245582  0.32224071 -0.3107301   0.29911542]
 [-0.03472292 -0.37411058 -0.22680879  0.21656895]
 [-0.37798405  0.31725729 -0.17690742 -0.02995324]]

转自:

https://blog.csdn.net/zhuzuwei/article/details/78983562 

https://www.jianshu.com/p/195e4da1dde7

https://www.w3cschool.cn/tensorflow_python/tensorflow_python-zj1v2ll2.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值