文章目录

  1. 1. 常量
  2. 2. 变量
  3. 3. Fetch
  4. 4. Feed
  5. 5. 参考资料


微信公众号

阅读完《TensorFlow 学习摘要(三) 深度学习 - TensorFlow 快速入门》,再补充几点 TensorFlow 的基本使用。

常量

我们可以创建一个常量 op, 产生一个 1x1 矩阵。

m = tf.constant([[3.]])

变量

参见《TensorFlow 学习摘要(三) 深度学习 - TensorFlow 快速入门

b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))

这里列出 TensorFlow 目前支持的常用的常量声明方法与随机数生成器。

函数名称 功能 样例
tf.zeros 产生全 0 数组 tf.zeros([2,3],int32)–>[[0,0,0],[0,0,0]]
tf.ones 产生全 1 数组 tf.ones([2,3],int32)–>[[1,1,1],[1,1,1]]
tf.fill 产生一个给定值的数组 tf.fill([2,3],9)–>[[9,9,9],[9,9,9]]
tf.constant 产生一个给定值常量 tf.constant([1,2,3])–>[1,2,3]
函数名称 随机数分布 主要参数
tf.random_normal 正太分布 平均值、标准差、取值类型
tf.truncated_normal 正太分布,如果随机出来的值偏离均值超过2个标准差,重新随机 平均值、标准差、取值类型
tf.random_uniform 平均分布 最小、最大取值、取值类型
tf.random_gamma Gamma 分布 形状参数 alpha、尺度参数 beta、取值类型

此外,需要进行变量的初始化。这里,使用tf.global_variables_initializer函数实现初始化所有变量的过程。

init = tf.global_variables_initializer()

注意的是,initialize_all_variables已被弃用,已在 2017-03-02 之后删除。 现在,使用tf.global_variables_initializer代替。

Fetch

我们可以在使用 Session 对象的 run() 调用执行图时, 同时传入一些 tensor 来获取结果。

with tf.Session() as sess:
  result = sess.run([a, b])
  print result

Feed

TensorFlow 提供了 placeholder 机制提供输入数据。placeholder 相当于定义了一个位置,这个位置中的数据在程序运行时再指定。

input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.mul(input1, input2)

在新的程序中计算前向传播结果时,需要提供一个 feed_dict 来制定取值。 feed_dict 是一个字典,字典中需要给出每个用到的 placeholder 的取值。

with tf.Session() as sess:
  print sess.run([output], feed_dict={input1:[7.], input2:[2.]})

参考资料

文章目录

  1. 1. 常量
  2. 2. 变量
  3. 3. Fetch
  4. 4. Feed
  5. 5. 参考资料