TensorFlow实战第一课(session、Variable、Placeholder、Activation Function)
莫烦tensorflow教学
1.session会话控制
Tensorflow 中的Session
, Session
是 Tensorflow 为了控制,和输出文件的执行的语句. 运行session.run()
可以获得你要得知的运算结果, 或者是你所要运算的部分。
我们首先尝试将两个矩阵相乘并输出结果
import tensorflow as tf # create two matrixes matrix1 = tf.constant([[3,3]]) matrix2 = tf.constant([[2], [2]]) product = tf.matmul(matrix1,matrix2)
因为product不是直接计算的步骤,所以我们会使用session来激活码product并得到计算结果。
有两种形式使用会话控制session。
# method 1 sess = tf.Session() result = sess.run(product) print(result) sess.close() # [[12]] # method 2 with tf.Session() as sess: result2 = sess.run(product) print(result2) # >>[[12]]
2.Variable 变量
看得莫烦的tensorflow课程 讲的很有趣,有兴趣的同学也可以去看看
tensorflow中 只有定义了某字符串是变量,他才是变量,这一点与python不同
定义语法:state = tf.Variable( )
import tensorflow as tf state = tf.Variable(0, name='counter') # 定义常量 one one = tf.constant(1) # 定义加法步骤 (注: 此步并没有直接计算) new_value = tf.add(state, one) # 将 State 更新成 new_value update = tf.assign(state, new_value)
定义完变量后,最终要的是初始化!init = tf.initialize-all_variables()
到这里变量还没有激活,需要在sess中 sess.run(init) 激活init这一步
# 如果定义 Variable, 就一定要 initialize # init = tf.initialize_all_variables() # tf 马上就要废弃这种写法 init = tf.global_variables_initializer() # 替换成这样就好 # 使用 Session with tf.Session() as sess: sess.run(init) for _ in range(3): sess.run(update) print(sess.run(state))
注意:直接print(state)是不可以的
应该把sess的指针指向state再进行print才能得到想要的结果!
3.Placeholder 传入值
placeholder是tensorflow中的占位符,暂时存储变量
tensorflow如果想从外部传入数据,那么就需要tf.placehoder(),然后以这种形式传输数据
sess.run(***,feed_dict={input:*****})
#placeholder import tensorflow as tf input1 = tf.placeholder(tf.float32) #大部分情况 只能处理float32数据形式 input2 = tf.placeholder(tf.float32) output = tf.multiply(input1,input2) with tf.Session() as sess: print(sess.run(output,feed_dict={input1:[7],input2:[2]}))
传值工作交给sess.run() ,需要穿的值放在了feed_dict={},并一一对应每个input
4.激励函数Activation Function
激励函数运行时激活神经网络中某一部分神经元,将激活信息向后传入下一层神经系统。
激励函数的实质是非线性方程。tensorflow的神经网络里面处理较为复杂的问题时都会需要运用激励函数