TensorFlow学习之CS20SI 之二

来源:互联网 发布:淘宝买家3心要多少信誉 编辑:程序博客网 时间:2024/06/05 00:40

1. 先来一个TensorFlow的“Hello World”

import tensorflow as tfa = 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 tfa = 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.linspacetf.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 3tf.range(start, limit, delta) ==> [3, 6, 9, 12, 15]# 'limit' is 5tf.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有哪些?


数据类型