Tensorflow graphs
Tensorflow是基于graph的并行计算模型,例如:计算 ,可以将算式拆分成如下格式:
d = b + c
e = c + 2
a = d * c
转换成graph后的形式:
TensorFlow基础运算
1 图(graph):用来表示计算任务,也就是我们要做的一些操作
2 会话(Session):建立会话,此时会生成一张空图;在会话中添加节点和边,形成一张图,一个会话可以有多张图,通过执行这些图得到结果,如果把每个图看做一个车床,那会话就是一个车间,里面有若干个车床,用来把数据产生成结果。
3 Tensor:用来表示数据,是我们的原料
4 变量(Variable):用来记录一些数据和状态,是我们的容器
5 feed和fetch:可以为任意的操作赋值或者从中获取数据。相当于一些铲子,可以操作数据。
创建图和运行图:
#引入tensorflow包
import tensorflow as tf
#创建一个常量v1,利用constant函数,创建一个3行3列的矩阵
v1 = tf.constant([[2,3,3],[3,4,5],[5,6,7]])
#创建一个常量v2 ,是一个3行1列的矩阵
v2 = tf.constant([[2],[3],[4]])
#创建一个矩阵乘法,这里要注意,创建了乘法后,是不会立即执行的,要在会话中才能执行
product = tf.matmul(v1,v2)
#定义一个会话
sess = tf.Session()
#运算乘法得到结果
result = sess.run(product)
print(result)
sess.close()
创建一个变量:
#导入TensorFlow包
import tensorflow as tf
#创建一个变量num,初始值为0
num = tf.Variable(0,name='count')
#创建一个加法操作,把当前的数字加10
new_value = tf.add(num,10)
#创建一个复制操作,把new_value复制给num
op = tf.assign(num,new_value)
#初始化变量
init = tf.global_variables_initializer()
#使用这种写法,在运行完之后,会话会自动关闭
with tf.Session() as sess:
sess.run(init)
print(sess.run(num))
#创建for循环,每次给num加10,并打印出来
for i in range(5):
sess.run(op)
print(sess.run(num))
结果:
0
10
20
30
40
50
通过feed设置placeholder的值:
#到TensorFlow包
import tensorflow as tf
#创建一个变量占位符input1
input1 = tf.placeholder(tf.float32)
#创建一个变量占位符input2
input2 = tf.placeholder(tf.float32)
#创建一个加法操作,把input1和input2相加
new_value = tf.multiply(input1,input2)
with tf.Session() as sess:
print(sess.run(new_value,feed_dict={input1:23.0,input2:11.0}))
结果:253.0