一:基本概念
TensorFlow是一个编程系统,利用图来表示计算任务,图中的节点称之为op(operation),一个op获得一个或者多个tensor(数据),执行运算产生一个或者多个tensor。tensor看做一个n维的数组或者列表。图必须在会话(session)中被启动。
二:一些基础操作
(一)定义一个op
import tensorflow as tf
m1=tf.constant([[3,3]])#创建一个常量1行2列的矩阵
m2=tf.constant([[2],[3]])#2行1列的矩阵
product=tf.matmul(m1,m2)#矩阵相乘的op
print(product)
这样输出的结果是
Tensor("MatMul:0", shape=(1, 1), dtype=int32)
(二)定义一个会话,启动默认图
#定义一个会话,启动默认图
sess=tf.Session()
#调用sess的run方法来执行矩阵乘法op
result=sess.run(product)
print(result)
sess.close()#记得关掉会话
with tf.Session() as sess1:
result = sess1.run(product)
print(result)
更为常用的方法,可以自动关闭会话
[[15]]
(三)变量的定义和使用
x=tf.Variable([1,2])
a=tf.constant([3,3])
sub=tf.subtract(x,a);
add=tf.add(x,sub)
#变量的初始化十分重要,当程序中有多个变量时,可以只调用这一个函数就初始化所有的变量
init=tf.global_variables_initializer()
with tf.Session() as sess2:
sess2.run(init)
print(sess2.run(sub))
print(sess2.run(add))
[-2 -1]
[-1 1]
(四)实现变量的自增
state=tf.Variable(0,name='counter')#创建一个变量,初始化为0
new_value=tf.add(state,1)#定义一个op
update=tf.assign(state,new_value)
init=tf.global_variables_initializer()
with tf.Session() as sess3:
sess3.run(init)
print(sess3.run(state))
for _ in range(5):
sess3.run(new_value)#这句写不写对结果没有影响
sess3.run(update)
print(sess3.run(state))
0
1
2
3
4
5
(五)fetch和feed
fetch就是一个会话运行多个op
input1=tf.constant(3.0)
input2=tf.constant(2.0)
input3=tf.constant(5.0)
add=tf.add(input2,input3)
mul=tf.multiply(input1,add)
with tf.Session() as sess4:
result=sess4.run([mul,add])
print(result)
#创建占位符
input1=tf.placeholder(tf.float32)
input2=tf.placeholder(tf.float32)
output=tf.multiply(input1,input2)
with tf.Session() as sess5:
#feed的数据以字典的形式传入
print(sess5.run(output,feed_dict={input1:[8.],input2:[2.]}))