A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本节我们介绍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进行机器学习和深度学习,从数据处理到网络建立再到实战应用。


1 个回复

正序浏览
奈斯,加油加油
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马