一、四种重要类型、三个重要的函数
(1)四种重要的类型:
1)@Variable 计算图谱的变量
2)@Tensor 一个多维矩阵,带有很多方法
3)@Graph 一个计算图谱
4)@Session用来运行一个计算图谱
(2)Tensorflow三个重要的函数:
1)Variable是一个class
2)Constant返回的是:a constant @Tensor
3)Placeholder 返回的是一个尚未存在的@Tensor,需要在Session执行时获得。
二、基本操作
#首先我们引入tensorflow
import tensorflow as tf
#我们定义一个基本函数运算函数,加法运算
def basic_operation():
v1 = tf.Variable(10) #定义Variable变量
v2 = tf.Variable(5)
s = v1 + v2
print(s)
#运行basic_operation()你会发现不是15。。。。what?
#这里我们介绍下session, session是用来计算的实例,我们需要先定义一个session,将它初始化,再进行赋值,方法如下:
sess = tf.Session() #定义一个session
tf.global_variables_initializer().run(session = sess)#进行初始化
print('变量是需要初始化的')
print('v1+v2 = ', s.eval(session = sess)) #打印输出,s.eval() 用来计算括号里的session,也可以用.run()实现,如下句代码所示
# print('v1+v2 = ', sess.run(s))
#这样你就会发现结果果然是15了。
#这种先定义再操作的方式称为符号式编程(symbolic programing)。
现在我们用graph进行操作
graph = tf.Graph() #定义一个graph
with graph.as_default(): #这个graph是我们默认的
value1 = tf.constant([1,2]) #定义一个常量
value2 = tf.Variable([3,4]) #定义一个变量
mul = value1 * value2 #对应相乘
with tf.Session(graph = graph) as mySess:
tf.global_variables_initializer().run() #因为在with在面,不用run(session = mySess),直接run()就行
print(mySess.run(mul))
#这样就得到输出[3, 8]
简单介绍下feed机制,给feed提供数据,作为run()调用的参数,feed只在调用它的方法内有效,调用结束, feed消失。
import tensorflow as tf
input1 = tf.placeholder(tf.float32) #定义placeholder,默认是int32型
input2 = tf.placeholder(tf.float32)
ouput = input1 * input2
with tf.Session() as sess:
print(sess.run(ouput, feed_dict={input1: [7.], input2: [2.]}))
#这样,你就会看到输出为[14.]