一.TensorFlow随机数生成函数
随机函数生成的数组每个数字都是一个随机数。根据不同的函数,随机数呈现不同的分布趋势:
- tf.random_normal 正态分布。
- tf.truncated_normal 正态分布,单如果随机出来的值便宜平均值超过2个标准差,那么这个数会被重新随机。
- tf.random_uniform 均匀分布。
- tf.random_gamma Gamma分布。
tf.random_normal
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
tf.truncated_normal
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
tf.random_uniform
tf.random_uniform(shape, minval=0.0, maxval=1.0, dtype=tf.float32, seed=None, name=None)
对上面几个关键字的解释:
- shape :张量的形状,简单的解释就要生的n*m的数组。例如:[2,3]就是一个2*3的数组。
- mean :一个整数,正态分布的平均值。
- stddev :正态分布的标准差。
- dtyle :数据类型,通常使用tf.float32
- seed :(目前也没搞清楚,直接粘贴出来自己体会下吧)A Python integer. Used to create a random seed for the distribution. See
set_random_seed
for behavior. - minval :生成随机值范围的下限
- maxval :生成随机值范围的上限
二.TensorFlow常数生成函数
- tf.zeros 产生全是0的数组
- tf.ones 产生全是1的数组
- tf.fill 产生一个全部为指定数字的数据
- tf.constant 产生一个给定的常量
示例:
import tensorflow as tf
a = tf.zeros([2,3],tf.float32)
b = tf.ones([2,3],tf.float32)
c = tf.fill([2,3],9.0)
d = tf.constant([1.0,2.0,3.0])
sess = tf.Session()
print(sess.run(a))
print(sess.run(b))
print(sess.run(c))
print(sess.run(d))
输出:
[[0,0,0],[0,0,0]]
[[1,1,1],[1,1,1]]
[[9,9,9],[9,9,9]]
[1,2,3]
三.TensorFlow中的优化器
优化器是一种反向传播优化方法。
定了优化器以后通过:sess.run(train)对算法中的Variables进行优化,是的计算结果与真实值的偏差减小。
目前(2017-12)TensorFlow提供了8中优化器:
-
tf.train.GradientDescentOptimizer
-
tf.train.AdadeltaOptimizer
-
tf.train.AdagradOptimizer
-
tf.train.AdagradDAOptimizer
-
tf.train.MomentumOptimizer
-
tf.train.AdamOptimizer
-
tf.train.FtrlOptimizer
-
tf.train.RMSPropOptimizer
我们后面会挑选几个常用的做详细介绍。
tf.clip_by_value
tf.clip_by_value(A, min, max):输入一个张量A,把A中的每一个元素的值都压缩在min和max之间。小于min的让它等于min,大于max的元素的值等于max。
import tensorflow as tf; import numpy as np; A = np.array([[1,1,2,4], [3,4,8,5]]) with tf.Session() as sess: print sess.run(tf.clip_by_value(A, 2, 5))
输出
[[2 2 2 4] [3 4 5 5]]
Tensorflow当前版本判断。并且根据当前版本选择执行方法。
if int((tf.__version__).split('.')[1]) < 12 and int((tf.__version__).split('.')[0]) < 1: init = tf.initialize_all_variables() else: init = tf.global_variables_initializer()
参考链接
http://wiki.jikexueyuan.com/project/tensorflow-zh/resources/dims_types.html
什么是张量
http://blog.csdn.net/u014595019/article/details/52805444
常用函数说明