黑马程序员技术交流社区
标题: 【上海校区】TensorFlow基本操作 [打印本页]
作者: 梦缠绕的时候 时间: 2018-8-28 09:23
标题: 【上海校区】TensorFlow基本操作
本节我们介绍TensorFlow的基本操作,对于入门的话我们需要掌握TensorFlow的四种重要类型和三个重要函数。我们会在下面结合代码一一介绍。
一、基本类型和函数
TensorFlow的四种重要类型分别为:
@Variable 计算图谱的变量
@Tensor 一个多维矩阵,带有很多方法
@Graph 一个计算图谱
@Session 用来运行一个计算图谱
TensorFlow的三个重要函数分别为 Variable(变量), Constant(常量), Placeholder(暂时变量)。
注意点
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]
最后我们介绍Placeholder,Placeholder对省内存非常有效。
要给结点输入数据时用placeholder,在Tensorflow中用placeholder来描述等待输入的结点,只需要指定类型即可,然后在执行结点的时候用一个字典来“喂”这些结点。相当于先把变量hold住,然后每次从外部传入data,注意placeholder和feed_dict是绑定使用的。
简单介绍下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.]
本节基本操作就介绍到这里,具体使用特性在后续及实战中会更好的体会。接下来我们将介绍利用TensorFlow进行机器学习和深度学习,从数据处理到网络建立再到实战应用。
作者: 不二晨 时间: 2018-8-30 17:09
奈斯,加油加油
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |