TensorFlow相关函数
1.TensorFlow_normal
truncated_normal(
shape,
mean=0.0,
stddev=1.0,
dtype=tf.float32,
seed=None,
name=None
)
功能说明
产生截断正太分布随机数,取值范围为
[mean - 2 * stddev, mean + 2 * stddev]。
参数列表
* 参数名* |
必选 |
类型 |
* 说明* |
shape |
是 |
1维整型张量或array |
输出张量的纬度 |
mean |
否 |
0维张量或数值 |
均值 |
stddev |
否 |
0维张量或数值 |
标准差 |
dtype |
否 |
dtype |
输出类型 |
seed |
否 |
数值 |
随机种子,若seed赋值,每次产生相同随机数 |
name |
否 |
string |
运算名称 |
示例代码
import tensorflow as tf
initial = tf.truncated_normal(shape=[3,3], mean=0, stddev=1)
print tf.Session().run(initial)
2.tf.constant
constant(
value,
dtype=None,
shape=None,
name='Const',
verify_shape=False
)
功能说明
根据value的值生成一个shape纬度的常量张量
参数列表
* 参数名* |
必选 |
类型 |
* 说明* |
value |
是 |
常量数值或者list |
输出张量的值 |
dtype |
否 |
dtype |
输出张量元素类型 |
shape |
否 |
1维整形张量或array |
输出张量的维度 |
name |
否 |
string |
张量名称 |
verify_shape |
否 |
Boolean |
检测shape是否和value的 shape一致,若为 Fasle,不一致时,会用最后一个元素将shape补全 |
示例代码
import tensorflow as tf
import numpy as np
a = tf.constant([1,2,3,4,5,6],shape=[2,3])
b = tf.constant(-1,shape=[3,2])
c = tf.matmul(a,b)
e = tf.constant(np.arange(1,13,dtype=np.int32),shape=[2,2,3])
f = tf.constant(np.arange(13,25,dtype=np.int32),shape=[2,3,2])
g = tf.matmul(e,f)
with tf.Session() as sess:
print sess.run(a)
print ("##################################")
print sess.run(b)
print ("##################################")
print sess.run(c)
print ("##################################")
print sess.run(e)
print ("##################################")
print sess.run(f)
print ("##################################")
print sess.run(g)
执行结果
- a: 2x3 维张量;
- b: 3x2 维张量;
- c: 2x2 维张量;
- e: 2x2x3 维张量;
- f: 2x3x2 维张量;
- g: 2x2x2 维张量。
3.tf.placeholder
placeholder(
dtype,
shape=None,
name=None
)
功能说明
是一种占位符,在执行时候需要为其提供数据
参数列表
* 参数名* |
必选 |
类型 |
* 说明* |
dtype |
是 |
dtype |
占位符数据类型 |
shape |
否 |
1 维整形张量或 array |
占位符维度 |
name |
否 |
string |
占位符名称 |
示例代码
import tensorflow as tf
import numpy as np
x = tf.placeholder(tf.float32,[None,10])
y = tf.matmul(x,x)
with tf.Session() as sess:
rand_array = np.random.rand(10,10)
print sess.run(y,feed_dict={x:rand_array})
4.tf.nn.bias_add
bias_add(
value,
bias,
data_format=None,
name=None
)
功能说明
将偏差项 bias 加到 value 上面,可以看做是 tf.add 的一个特例,其中 bias 必须是一维的,并且维度和 value 的最后一维相同,数据类型必须和 value 相同。
参数列表
* 参数名* |
必选 |
类型 |
* 说明* |
value |
是 |
张量 |
数据类型为 float, double, int64, int32, uint8, int16, int8, complex64, or complex128 |
bias |
是 |
1维张量 |
维度必须和value最后一维维度相等 |
data_format |
否 |
string |
数据格式,支持’NHWC’和’NCHW’ |
name |
否 |
string |
运算名称 |
示例代码
import tensorflow as tf
import numpy as np
a = tf.constant([[1.0, 2.0],[1.0, 2.0],[1.0, 2.0]])
b = tf.constant([2.0,1.0])
c = tf.constant([1.0])
sess = tf.Session()
print sess.run(tf.nn.bias_add(a, b))
print ("##################################")
print sess.run(tf.add(a, b))
print ("##################################")
print sess.run(tf.add(a, c))
5.tf.reduce_mean
reduce_mean(
input_tensor,
axis=None,
keep_dims=False,
name=None,
reduction_indices=None
)
功能说明
计算张量 input_tensor 平均值
参数列表
* 参数名* |
必选 |
类型 |
* 说明* |
input_tensor |
是 |
张量 |
输入待求平均值的张量 |
axis |
否 |
None、0、1 |
None:全局求平均值;0:求每一列平均值;1:求每一行平均值 |
keep_dims |
否 |
Boolean |
保留原来的维度,降为 1 |
name |
否 |
string |
运算名称 |
reduction_indices |
否 |
None |
和axis等价,被弃用 |
示例代码
import tensorflow as tf
import numpy as np
initial = [[1.,1.],[2.,2.]]
x = tf.Variable(initial,dtype=tf.float32)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print sess.run(tf.reduce_mean(x))
print sess.run(tf.reduce_mean(x,0))
print sess.run(tf.reduce_mean(x,1))
执行结果:
1.5
[ 1.5 1.5]
[ 1. 2.]
6.tf.squared_difference
squared_difference(
x,
y,
name=None
)
功能说明
计算张量 x、y 对应元素差平方
参数说明
* 参数名* |
必选 |
类型 |
* 说明* |
x |
是 |
张量 |
是 half, float32, float64, int32, int64, complex64, complex128 其中一种类型 |
y |
是 |
张量 |
是 half, float32, float64, int32, int64, complex64, complex128 其中一种类型 |
name |
否 |
string |
运算名称 |
示例代码
import tensorflow as tf
import numpy as np
initial_x = [[1.,1.],[2.,2.]]
x = tf.Variable(initial_x,dtype=tf.float32)
initial_y = [[3.,3.],[4.,4.]]
y = tf.Variable(initial_y,dtype=tf.float32)
diff = tf.squared_difference(x,y)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print sess.run(diff)
执行结果
[[ 4. 4.]
[ 4. 4.]]
7.tf.square
square(
x,
name=None
)
功能说明
计算张量对应元素平方
参数列表
* 参数名* |
必选 |
类型 |
* 说明* |
x |
是 |
张量 |
是 half, float32, float64, int32, int64, complex64, complex128 其中一种类型 |
name |
否 |
string |
运算名称 |
示例代码
import tensorflow as tf
import numpy as np
initial_x = [[1.,1.],[2.,2.]]
x = tf.Variable(initial_x,dtype=tf.float32)
x2 = tf.square(x)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print sess.run(x2)
执行结果
[[ 1. 1.]
[ 4. 4.]]
TensorFlow相关类
tf.Variable
__init__(
initial_value=None,
trainable=True,
collections=None,
validate_shape=True,
caching_device=None,
name=None,
variable_def=None,
dtype=None,
expected_shape=None,
import_scope=None
)
功能说明
维护图在执行过程中的状态信息,例如神经网络权重值的变化。
参数列表
* 参数名* |
类型 |
* 说明* |
initial_value |
张量 |
Variable 类的初始值,这个变量必须指定 shape 信息,否则后面 validate_shape 需设为 False |
trainable |
Boolean |
是否把变量添加到 collection GraphKeys.TRAINABLE_VARIABLES 中(collection 是一种全局存储,不受变量名生存空间影响,一处保存,到处可取) |
collections |
Graph collections |
全局存储,默认是 GraphKeys.GLOBAL_VARIABLES |
validate_shape |
Boolean |
是否允许被未知维度的 initial_value 初始化 |
caching_device |
string |
指明哪个device用来缓存变量 |
name |
string |
变量名 |
dtype |
dtype |
如果被设置,初始化的值就会按照这个类型初始化 |
expected_shape |
TensorShape |
要是设置了,那么初始的值会是这种维度 |
示例代码
import tensorflow as tf
initial = tf.truncated_normal(shape=[10,10],mean=0,stddev=1)
W=tf.Variable(initial)
list = [[1.,1.],[2.,2.]]
X = tf.Variable(list,dtype=tf.float32)
init_op = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init_op)
print ("##################(1)################")
print sess.run(W)
print ("##################(2)################")
print sess.run(W[:2,:2])
op = W[:2,:2].assign(22.*tf.ones((2,2)))
print ("###################(3)###############")
print sess.run(op)
print ("###################(4)###############")
print (W.eval(sess))
print ("####################(5)##############")
print (W.eval())
print ("#####################(6)#############")
print W.dtype
print sess.run(W.initial_value)
print sess.run(W.op)
print W.shape
print ("###################(7)###############")
print sess.run(X)