莫烦Tensorflow 入门
Tensorflow 初步尝试
#https://mofanpy.com/tutorials/machine-learning/tensorflow/example2/ #创建数据 #搭建模型 #计算误差 #传播误差 #初始会话 #不断训练 import tensorflow as tf import numpy as np #创建数据 x_data = np.random.rand(100).astype(np.float32) y_data = x_data * 0.1 + 0.3 #定义神经元可变参数 W = tf.Variable(tf.random_uniform([1],-1.0,1.0)) b = tf.Variable(tf.zeros([1])) y = W * x_data + b #计算误差 loss = tf.reduce_mean(tf.square(y - y_data)) #采用梯度下降法反向传播误差 optimizer = tf.train.GradientDescentOptimizer(0.2) train = optimizer.minimize(loss) #初始化所有的神经元可变参数 init = tf.global_variables_initializer() #创建会话 sess = tf.Session() #执行初始化步骤 sess.run(init) #不断的训练数据,提升网络性能 for i in range(1000): sess.run(train) if i % 100 == 0: print(i,sess.run(W),sess.run(b)) print("Loss:%.11f" % sess.run(loss))
Tensorflow 中的 Session
Session
是 Tensorflow 为了控制、和输出文件的执行的语句.
运行 session.run()
可以获得你要得知的运算结果, 或者是你所要运算的部分
import tensorflow as tf #创建两个矩阵 m1 = tf.constant([[3,3]]) m2 = tf.constant([[2],[2]]) p = tf.matmul(m1,m2) #[12]] #使用session 激活p 得到计算结果 ## 方法1 ## sess = tf.Session() result = sess.run(p) print(result) sess.close() ## 方法2 ## with tf.Session() as sess: result2 = sess.run(p) print(result2)
Tensorflow 中使用 Variable
Tensorflow 中,定义了某字符串是变量,它才是变量
import tensorflow as tf state = tf.Variable(0,name='Jike') #定义常量 one = tf.constant(1) #定义加法步骤【但没有直接运算】 new = tf.add(state,one) #将 State更新成 new update = tf.assign(state,new) #如果定义了Variable,一定要 initialize init = tf.global_variables_initializer() #使用session with tf.Session() as sess: sess.run(init) #激活 for i in range(3): sess.run(update) print(sess.run(state)) #将sess的指针指向 state
Tensorflow 中的 placeholder
placeholder
是 Tensorflow 中的占位符,暂时储存变量.
Tensorflow 如果想要从外部传入data, 那就需要用到 tf.placeholder()
import tensorflow as tf #在 Tensorflow 中需要定义 placeholder 的 type ,一般为 float32 形式 x = tf.placeholder(tf.float32) y = tf.placeholder(tf.float32) # mul = multiply 是将input1和input2 做乘法运算,并输出为 output z = tf.multiply(x,y) #传值的工作交给了 sess.run() , 需要传入的值放在了feed_dict={} with tf.Session() as sess: print(sess.run(z,feed_dict={x:[4.],y:[2.]}))