tensorflow的运算实质
这里给出一幅图来说明:
- tensorflow实质: tf = tensor + 计算图
tensor:本质就是数据,可以是常量,也可以是变量,可以是一维,也可以是多维。
op 如:赋值运算 四则运算
graphs:数据和操作的过程
tensorflow中所有的计算图都要放在session中进行,session是执行的核心,可理解为运算的交互环境。
类似于c语言中读取文件后关闭文件,使用session之后,也要进行关闭,我们依然使用上一次所使用的示例。
import tensorflow as tf
data1=tf.constant(2.5)
# data=tf.constant(2,dtype=tf.int32)
data2=tf.Variable(10,name='var')
print(data1)
print(data2)
sess=tf.Session()
print(sess.run(data1))
#print(sess.run(data))
init=tf.global_variables_initializer()
sess.run(init)
print(sess.run(data2))
sess.close()
另外一种方法,将sess当做是变量,本人将其理解为似于c语言中的switch语句。使用关键字with
data2=tf.Variable(10,name='var')
init=tf.global_variables_initializer()
sess=tf.Session()
with sess:
sess.run(init)
print(sess.run(data2))
常量变量的四则运算
import tensorflow as tf
data1=tf.constant(6)
data2=tf.Variable(2)
dataADD=tf.add(data1,data2)
dataCopy=tf.assign(data2,dataADD)#将dataADD的结果放在data2中
dataSUB=tf.subtract(data1,data2)
dataMUL=tf.multiply(data1,data2)
dataDIV=tf.divide(data1,data2)
init=tf.global_variables_initializer()##所有的变量初始化之后才能使用
with tf.Session() as sess:
sess.run(init)
print(sess.run(data1))
print(sess.run(data2))
print(sess.run(dataADD))
print(sess.run(dataSUB))
print(sess.run(dataMUL))
print(sess.run(dataDIV))
print('sess.run(dataCopy)',sess.run(dataCopy))
print('data2',sess.run(data2))#8->data2
print('dataCopy.eval()',dataCopy.eval())#14=8+6->data2
print('tf.get_default_session(dataCopy)',tf.get_default_session().run(dataCopy))##获取默认的sess 20=14+6->data2
print('end')
此处使用关键字with as
eval()方法本质上相当于tf.get_default_session()获取一个默认的sess ,开启执行run操作。
当然也可以进行常量与常量的四则运算,在此不再赘述。