1.基本概念
Tensorflow使用图(graph)来表示计算任务,图中的节点(operation)在计算过程中会获得0或多个张量(tensor),执行计算后会产生0或多个张量。其中,图必须在会话(session)中里被启动
2.创建节点
创建常量op
使用以下代码创建常量op
import tensorflow as tf
#tf中常量的使用
#创建一个一行两列的op
c1 = tf.constant([[3,3]])
#创建一个两行一列的op
c2 = tf.constant([[1],[2]])
print(c1)
print(c2)
得到的输出结果为
不难发现,使用print()
方法得到的变量输出结果并不是我们预料的那样是两个的数组。这是因为,tf所有op的操作都要在会话的图中执行。要想输出c1,c2,需要先定义一个会话,启动默认图来打印。
代码:
with tf.Session() as sess: #注意S大写
print(sess.run(c1))
print(sess.run(c2))
输出结果:
创建变量
代码:
#tf中变量的使用
x = tf.Variable([3,3])
y = tf.Variable([1,2])
sub = tf.subtract(x,y)
#初始化
init = tf.global_variables_initializer()
with tf.Session() as sess:
#注意初始化方法也需要在会话中运行
sess.run(init)
print(sess.run(sub))
对于tensorflow中的变量,在使用时必须要进行初始化。否则会报错:
初始化为
init =tf.global_variables_initializer()
方法
创建运算op
创建一个乘法op,让之前创建的两个常量op相乘:
#创建一个乘法op
product = tf.matmul(c1,c2)
#定义默认会话
sess = tf.Session()
#执行乘法op
result = sess.run(product)
print(result)
结果为矩阵预算结果同理,减法op为
sub = tf.subtract()
;add = tf.add()
.
使用循环让变量自增
算法思路:创建一个变量opstate
,初始化为0。进入循环,通过一个加法op,每次使state
增加1。
import tensorflow as tf
#创建一个变量,初始化为0
state = tf.Variable(0,name='counter')
new_value = tf.add(state,1)
#赋值op
update = tf.assign(state,new_value)
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
print(state)
for _ in range(5):
sess.run(update)
print(sess.run(state))
运行结果: