朋友,沉下心来阅读你才会有收获,不要对长篇文字和代码感到畏惧,他们是你走向成功的伙伴
Tensorflow中的基本概念
基本概念的解释
可以大致给这几个概念分一个层级,Session是最高一级的概念,Session包括graphs,而graphs由Variable,Tensor,operation等概念组成。
而operation,tensor,variable又有其各自的关系,operation对tensor进行操作,产生新的tensor。variable用来暂存操作或者tensor,实现对整个计算过程状态的维护。
这些概念在代码中的体现,以及使用注意事项
Tensor
import tensorflow as tf
v1 = tf.constant([[3,3]])
v2 = tf.constant([[2],[3]])
product = tf.matmul(v1,v2)
print(product)
输出:
Tensor("MatMul_1:0", shape=(1, 1), dtype=int32)
可见在Tensorflow中,数据是以张量的形式存在的。直接打印,并不能打印出具体的数值。
Session
import tensorflow as tf
v1 = tf.constant([[3,3]])
v2 = tf.constant([[2],[3]])
product = tf.matmul(v1,v2)
print(product)
with tf.Session() as sess:
result = sess.run(product)
print(result)
输出:
Tensor("MatMul_2:0", shape=(1, 1), dtype=int32)
[[15]]
在这里我们定义了一个会话,在会话中进行计算。
有人可能会问,不是在graph中计算吗,这是由于tensorflow中的Session都有默认的graph,我们不需要再另外定义了。
另外要注意这里的创建Session的写法,这是一种通用的写法,要记住。
Variable
import tensorflow as tf
x = tf.Variable([1,2])
y = tf.constant([3,3])
sub = tf.subtract(x,y)
add = tf.add(x,sub)
init = tf.global_variables_initializer() #变量初始化
with tf.Session() as sess:
sess.run(init) #变量初始化
print(sess.run(sub))
print(sess.run(add))
variable这部分要注意,在tensorflow中要使用变量是要先进行初始化的,即代码中带注释的句子。
输出:
[-2 -1]
[-1 1]