1. 先来一个TensorFlow的“Hello World”
import tensorflow as tf
a = tf.constant(2)
b = tf.constant(3)
x = tf.add(a, b)
with tf.Session() as sess:
print sess.run(x)
这就是一个最简单的tensorflow小程序啦,做的事情就是把a和b加起来,a是一个值为2的常数,b是一个值为3的常数,说白了就是计算2+3
前面说到Graph,TensorFlow提供了一个可以可视化它的工具,叫TensorBoard,它的用法是下面这样
import tensorflow as tf
a = tf.constant(2)
b = tf.constant(3)
x = tf.add(a, b)
with tf.Session() as sess:
# add this line to use TensorBoard.
writer = tf.summary.FileWriter('./graphs, sess.graph)
print sess.run(x)
writer.close() # close the writer when you’re done using it
这个比起上面就是加了这一句
writer = tf.summary.FileWriter('./graphs, sess.graph)
意思就是把当前的图存到./graphs这个路径下面,然后在命令行里面输入下面,会出来一个网址,在浏览器中打开那个网址看graphs就可以看到图啦
tensorboard --logdir="./graphs" --port 6006
2. 小栗子跑完了就开始认真学习每个函数是啥意思吧,先从constant开始
tf.constant(value, dtype=None, shape=None,name='Const', verify_shape=False)
它和numpy中的constants类似,可以定义它的值,数据类型、形状、名字、是否检查value和shape一致(不检查会用value自动填shape的形状)
再看几个特殊的constant
tf.zeros(shape, dtype=tf.float32, name=None)
这个是生成全是0的constant,类似于numpy.zeros
tf.zeros_like(input_tensor, dtype=None, name=None, optimize=True)
这个是生成和input_tensor形状一样的全是0的constant,类似于numpy.zeros_like
类似的还有下面这两个,和上面用法一样,就是全生成1
tf.ones(shape, dtype=tf.float32, name=None)
tf.ones_like(input_tensor, dtype=None, name=None, optimize=True)
如果不想填0或者1咋办?那就用下面这个
tf.fill(dims, value, name=None)
它的用法举个栗子就明白了:tf.fill([2, 3], 8) ==> [[8, 8, 8], [8, 8, 8]]
还有其他固定步长的线性增加,统统举栗子带过
tf.linspace(start, stop, num, name=None) # slightly different from np.linspace
tf.linspace(10.0, 13.0, 4) ==> [10.0 11.0 12.0 13.0]
tf.range(start, limit=None, delta=1, dtype=None, name='range')
# 'start' is 3, 'limit' is 18, 'delta' is 3
tf.range(start, limit, delta) ==> [3, 6, 9, 12, 15]
# 'limit' is 5
tf.range(limit) ==> [0, 1, 2, 3, 4]
然后,正态分布,这个初始化用的还挺多的
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
至于下面这个,也是正态分布,不一样的地方是大于两倍标准差的都不要啦
tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None,name=None)
剩下几个,就是uniform分布,随机打乱,随机crop,multinomial,和随机gamma,不展开说了
tf.random_uniform(shape, minval=0, maxval=None, dtype=tf.float32, seed=None,
name=None)
tf.random_shuffle(value, seed=None, name=None)
tf.random_crop(value, size, seed=None, name=None)
tf.multinomial(logits, num_samples, seed=None, name=None)
tf.random_gamma(shape, alpha, beta=None, dtype=tf.float32, seed=None, name=None)
此外,随机数每次产生都不一样,我咋debug?没关系,设个seed就每次产生的一样了,用法如下
tf.set_random_seed(seed)
看看TensorFlow支持的operation有哪些?
数据类型