输出:
- 2
上面这个程序只能计算1+1,以下程序通过 (占位符张量)和 的 参数展示了如何使用TensorFlow计算任意两个数的和:
- import tensorflow as tf
- a = tf.placeholder(dtype=tf.int32) # 定义一个占位符Tensor
- b = tf.placeholder(dtype=tf.int32)
- c = a + b
- a_ = input("a = ") # 从终端读入一个整数并放入变量a_
- b_ = input("b = ")
- sess = tf.Session()
- c_ = sess.run(c, feed_dict={a: a_, b: b_}) # feed_dict参数传入为了计算c所需要的张量的值
- print("a + b = %d" % c_)
变量**(Variable)是一种特殊类型的张量,使用 建立,与编程语言中的变量很相似。使用变量前需要先初始化,变量内存储的值可以在计算图的计算过程中被修改。以下示例如何建立一个变量,将其值初始化为0,并逐次累加1。
- a = tf.get_variable(name='a', shape=[])
- initializer = tf.assign(a, 0) # tf.assign(x, y)返回一个“将张量y的值赋给变量x”的操作
- a_plus_1 = a + 1 # 等价于 a + tf.constant(1)
- plus_one_op = tf.assign(a, a_plus_1)
- sess = tf.Session()
- sess.run(initializer)
- for i in range(5):
- sess.run(plus_one_op) # 对变量a执行加一操作
- a_ = sess.run(a) # 获得变量a的值并存入a_
- print(a_)
输出:
- 1.0
- 3.0
- 4.0
- 5.0
矩阵乃至张量运算是科学计算(包括机器学习)的基本操作。以下程序展示如何计算两个矩阵 和 的乘积:
- import tensorflow as tf
- A = tf.ones(shape=[2, 3]) # tf.ones(shape)定义了一个形状为shape的全1矩阵
- B = tf.ones(shape=[3, 2])
- C = tf.matmul(A, B)
- sess = tf.Session()
- C_ = sess.run(C)
- print(C_)
输出:
- [[3. 3.]