Tensorflow -- 基础概念

来源:互联网 发布:抑制性欲的药 知乎 编辑:程序博客网 时间:2024/06/05 23:47

常用概念

G=(V,E)
V -> operation 图的节点
E -> tensor 图的边
G -> graph 图

TensorFlow = tensor (多维数组) + flow (graph 图 op) session回话上下文管理
variable == tensor(多维数据变量)
placeholder == 外部传入的参数变量

seesion 计算graph,得到结果。定义一个Graph类,在Graph上定义了f和b两个变量,输出是对两个变量求和操作。接下来,定义session,实现真正的初始化,求出res。

>>> import tensorflow as tf>>> with graph.as_default():...     f = tf.Variable(3, name='f')...     b = tf.Variable(2, name='b')...     r = f + b...     initialize = tf.global_variables_initializer()>>> with tf.Session(graph=graph) as sess:...     sess.run(initialize)...     res = sess.run(r)>>> print res5

变量

初始化所有变量tf.global_variables_initializer()
初始化部分变量tf.variables_initializer()
要表示一个常量k = tf.constant(3.0)

占位符

当我们定义一张Graph时,有时候并不知道需要计算的值,可以使用tf.placeholder(dtype,shape=None,name=None)函数。

foo = tf.placeholder(tf.int32,shape=[1],name='foo')  bar = tf.constant(2,name='bar')  result = foo + bar  with tf.Session() as sess:     print sess.run(result,{foo:[3]})    

最简单的小例子:

# -*- coding:UTF-8 -*-import tensorflow as tfimport numpy as np# numpy生成数据x_data = np.float32(np.random.rand(2, 100))y_data = np.dot([0.100, 0.200], x_data) + 0.300# 初始化线性模型参数b = tf.Variable(tf.zeros([1]))w = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))y = tf.matmul(w, x_data) + b# 最小化方差loss = tf.reduce_mean(tf.square(y - y_data))optimizer = tf.train.GradientDescentOptimizer(0.5)train = optimizer.minimize(loss)# 初始化变量init = tf.global_variables_initializer()# 启动graphsess = tf.Session()sess.run(init)# 拟合平面for step in xrange(0, 401):    sess.run(train)    if step % 20 == 0:        print step, '/', sess.run(w), sess.run(b)

Ref:
http://blog.csdn.net/jdbc/article/details/68957085
https://my.oschina.net/yilian/blog/659618

原创粉丝点击