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.218899970.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.54654081.06096387 1.47238612 -1.99268937 1.28203201][ 0.36932501 0.30012983 1.94679129 0.59601396 -0.16721351 -0.427867920.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.585139690.75772232 -0.47386578 -0.34529254 -0.71658897][ 0.74709773 -0.0835886 1.14453304 0.70367438 0.07037418 -0.158088680.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.26722750.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 #placerholderrand_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