tensorflow基础
1.计算图 session tensor
-
tensor
1.定义两个tensorflow下的数a,b,称之为tensor。
a = tf.constant(32) b = tf.constant(10)
2.通过加法将两个数生成一个新的数c。
c = tf.add(a,b)
以上是构造图。
-
在构建整个计算图的过程中,如果我们打印其中的tensor,python运行结果会报错,这是因为tensorflow将tensor作为节点保存,没有具体的值。
-
要运行节点,需要开启Session,session可以运行tensor并保存。
#开启session的语法 sess = tf.Session() print(sess.run(a)) print(sess.run([a,b])) print(sess.run([a,b,c]))
-
tensorflow运行图中的tensor的过程称为“执行图”。
-
在tensorflow中,图的构造和执行是分离的,因此tensorflow是一种静态图模式,一旦图定义好了,它的执行便是固定的,不再变化的。
-
各种类型的tensor,tensor可以又自己独特的名字。
2. op 矩阵 随机化 valiable
-
tensorflow具有基本操作,这些操作定义为Op。
-
mat
tensorflow的矩阵及运算
-
Random
tensorflow提供了多种随机化的方法
-
关闭session
sess.close()
-
variable
1.variable是tensorflow下可以修改值得tensor,它需要定义一个初始值,可以是数值,列表或者numpy矩阵,也可以直接是tensor
2.像tensor一样,通过print也不能获得具体的值
3.初始化:在使用variable时,我们必须初始化这个variable,也就是调用他们的初始化方法。
此处sess.run(init)与init.run()等价
4.variable的eval,同样需要session帮助我们获得variable的值
5.variable赋值:可以通过assign对variable进行赋值,但这个操作必须要执行之后才会产生效果
3.占位符
-
图中节点没有具体的值,tensorflow根据这个逻辑定制了占位符(placeholder)的概念,它在构建图的时候占据图中一个位置,然后在执行图的时候才会代入具体的位置。
-
placeholder没有具体的值,那么我们在执行图的过程中需要填入具体的值,这时我们需要一个字典:
它的key是placeholder,value是具体的值,这个就是feed_dict
-
graph
1.tensorflow 是通过定义静态图的方法来运行的,我们当然可以获得这张计算图,这张图就是前面定义的所有tensor的集合
之后,我们便可以查看当前定义计算图的所有信息,比如举一个例子,我们可以查看所有定义过的tensor的信息
2.从graph中获取变量:我们也可以通过名字获得之前定义过的tensor
3.graph可视化:tensorflow还提供了非常厉害的tensorboard工具来可视化这个图