计算图:
在Tensorflow中,图的每个节点表示一个操作,可能会应用在某个输入上,并能够生成传递给其他节点的输出。
计算图的操作包括所有类型的函数。比如:创建汇总,生成常数值,运算或者其他复杂函数
Tensorflow的使用可简单分为创建图和执行图:
在导入tensorflow后,一个空的默认图就被创建,后续结点自动连接到这个图上,下面时创建一个图的代码
a = tf.constant(5)
b = tf.constant(6)
d = tf.add(a,b)
这时候我们创建了一个两个常量相加的图,下面我们来执行它
with tf.Session() as sess:
print(sess.run(d))
变量:
优化过程的作用就是调整模型的参数,即变量,每次迭代,模型都会优化变量。可以调用tf.Variable()创建一个变量并定义他的初始值
var = tf.Variable(init_val,name - "var")
#init_val是初始值
在运行计算图之前必须使用tf.global_variables_initializer()来初始化,为变量分配内存。变量的高级用法请参考tf.get_variables()
构造图与管理图:
tf.Graph()创建一个新的空图
tf.get_default_graph() 查看当前默认图
当使用多个图时,可以使用with和as_default()结构把某个图设为默认图
张量:
张量其实就是在构造图时结点间传值的句柄,即不动的数据流,当开启回话时,数据流会开始流动
查看某个张量的数据类型可以用 .dtype
数据类型转换 tf.cast(x,tf.int64)#把x转化为tf.int64的数据类型
命名空间:
tf.name_scope()
with tf.name_scope("peofix"):
#with结构下的命名都在profix的命名域下分组
占位符:
tf.placeholder()
可认为其是空的供填写数据的变量
shape为形状参数,若形状不确定可设为None
ph=tf.placeholder(tf.float32,shape=(None,10))
#占位后,开启会话喂数据
sess.run(s,feed_dict={ph:ph_data}
#ph_data必须是python中的数据类型,不可是tensor或者二进制文件
NOTE:
查看tensor的shape时使用get_shape()函数
在Ipython交互中,使用tf.InteractiveSession()更方便
x (3,) tf.expand_dims(x,1) x (3,1)
np.fromstring()#二进制文件转为字符串
.eval()#tensor转为Numpy数组
tf.convert_to_tensor #其他转化为tensor