tensorboard accuracy
1.什么是tensorflow?
Tensorflow是一个编程系统,使用图(graphs)来表示计算任务,图(graphs)中的节点称之为op(operation)
一个op获得0个或多个Tensor,执行计算,产生0个或多个Tensor。Tensor 看作是一个 n 维的数组或列表。图必须在会话(Session)里被启动。
tensorflow使用图(graphs)来表示计算任务,在被称之为会话(Session)的上下文(context)中执行图
使用tensor表示数据,通过变量(Variable)维护状态,使用feed和fetch可以为任意的操作赋值或者从其中获取数据。
2.创建图和启动图
# -*- coding: utf-8 -*- """ Created on Tue Mar 12 15:02:01 2019 @author: 32751 """ import tensorflow as tf m1 = tf.constant([[3,3]])#创建一常量op,两行一列 m2 = tf.constant([[2],[3]])#创建一常量op,一行两列 product = tf.matmul(m1,m2)#创建一个矩阵乘法op,m1,m2传入 print(product) # 定义一个绘画,启动默认图 sess = tf.Session()#调用sess的run方法来执行矩阵乘法op result = sess.run(product)#run(product)触发了途中三个op print(result) sess.close() #第二种方式执行矩阵乘法 with tf.Session() as sess: result = sess.run(product) print(result)
运行结果如下:
3.tensorflow变量加减
# -*- coding: utf-8 -*- """ Created on Tue Mar 12 15:27:44 2019 @author: 32751 """ import tensorflow as tf x = tf.Variable([1,2]) a = tf.constant([3,3]) #增加一个减法op sub = tf.subtract(x,a) #增加一个加法op add = tf.add(x,sub) #定义全部的变量 init = tf.global_variables_initializer() with tf.Session() as sess: #先对init运行一下,很有必要! sess.run(init) print(sess.run(sub)) print(sess.run(add)) #创建一个变量,初始化为0,名字为counter state = tf.Variable(0,name="counter") #创建一个新op,使原变量加一 new_value = tf.add(state,1) #将新的值再重新赋给原变量 update = tf.assign(state,new_value) #初始化变量 init = tf.global_variables_initializer() #启动图 with tf.Session() as sess: sess.run(init) print(sess.run(state)) for _ in range(5): sess.run(update) print(sess.run(state))
运行结果如下:
4.feed赋值,fetch可以操纵多个变量
# -*- coding: utf-8 -*- """ Created on Tue Mar 12 15:52:50 2019 @author: 32751 """ import tensorflow as tf #Fetch 同时运行多个op的意思 input1 = tf.constant(3.0) input2 = tf.constant(2.0) input3 = tf.constant(5.0) add = tf.add(input2,input3) #乘法 mul = tf.multiply(input1,add) with tf.Session() as sess: result = sess.run([mul,add]) print(result) #Feed #创建占位符 input1 = tf.placeholder(tf.float32) input2 = tf.placeholder(tf.float32) output = tf.multiply(input1,input2) #feed的数据以字典的形式传入 with tf.Session() as sess: print(sess.run(output,feed_dict={input1:[7.],input2:[2.]}))
运行结果如下:
5.构造线性模型,梯度下降优化
# -*- coding: utf-8 -*- """ Created on Tue Mar 12 16:13:06 2019 @author: 32751 """ import tensorflow as tf import numpy as np #使用numpy生成100个随机点(样本) x_data = np.random.rand(100) #确定的值 y_data = x_data*0.1 + 0.2 #确定的值 #构造一个线性模型(准备优化) b = tf.Variable(0.) k = tf.Variable(0.) y = k*x_data + b #k与b影响loss #二次代价函数 loss = tf.reduce_mean(tf.square(y_data-y)) #定义一个梯度下降法来进行训练的优化器 optimizer = tf.train.GradientDescentOptimizer(0.2) #最小化代价函数 train = optimizer.minimize(loss) #初始化变量 init = tf.global_variables_initializer() #绘画 with tf.Session() as sess: sess.run(init) for step in range(201):#迭代201次 sess.run(train) if step%20 == 0: print(step,sess.run([k,b]))
运行结果如下: