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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1. tensorflow编程的基本框架
  • 导入所需要的包
  • 准备数据
  • 构建模型/构建图
    • 定义变量、计算op
    • 定义优化目标及方法op
    • 定义初始化op
  • 启动/运行图
    • 运行初始化op
    • 运行优化目标及方法op

#导入包import tensorflow as tfimport numpy as np# 准备数据。使用numpy生成假2行100列的数据即100个二维点。# .randn()表示标准正态分布;.rand()表示[0,1)均匀分布。括号内为数据的shape。 x_data = np.float32(np.random.rand(2, 100))    y_data = np.dot([0.100, 0.200], x_data) + 0.300# 构建模型/构建图b = tf.Variable(tf.zeros([1]))W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))y = tf.matmul(W, x_data) + b# 定义目标及方法loss = tf.reduce_mean(tf.square(y - y_data))optimizer = tf.train.GradientDescentOptimizer(0.5)train = optimizer.minimize(loss)# 初始化变量,旧版本为tf.initialize_all_variables()init = tf.global_variables_initializer() # 启动/运行图sess = tf.Session()sess.run(init)# 拟合平面,不断运行train来更新参数。for step in range(0, 201):    sess.run(train)    if step % 20 == 0:        print (step, sess.run(W), sess.run(b))# 得到最佳拟合结果 W: [[0.100  0.200]], b: [0.300]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

2. 构建图
  • 创建placeholder,常量,变量的op
  • 创建计算的op
  • 创建优化目标及方法的op
  • 创建初始化op
#placeholder。None表示任意数x = tf.placeholder(tf.float32,[None, 2],name="x_input")with tf.Session() as sess:    input=sess.run(x, feed_dict={x:[7.3.]})#常量op。例:1x2常量矩阵。tf.constant([[0., 0.]])tf.constant(0., shape=[1,2])tf.constant(tf.zero([1,2]))#变量op。例:1x2变量矩阵。tf.Variable(tf.zeros([12]))tf.Variable([[0., 0.]])tf.Variable(tf.random_randn([1, 2])tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))#计算op。例:矩阵相乘tf.constant([[3., 3.]])#目标及方法的oploss = tf.reduce_mean(tf.square(y - y_data))optimizer = tf.train.GradientDescentOptimizer(0.5)train = optimizer.minimize(loss)#初始化opinit = tf.global_variables_initializer()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

3. 运行图

法一:

# 启动默认图.sess = tf.Session()#运行oplos=sess.run(loss)sess.run(train)# 任务完成, 关闭会话.sess.close()#为了便于使用诸如 IPython 之类的 Python 交互环境, 可以使用InteractiveSession 代替 Session 类。#使用 Tensor.eval() 和 Operation.run() 方法代替 Session.run()。这样可以避免使用一个变量来持有会话.sess = tf.InteractiveSession()x = tf.Variable([1.0, 2.0])a = tf.constant([3.0, 3.0])# 使用初始化器 initializer op 的 run() 方法初始化 'x' x.initializer.run()# 增加一个减法op。使用eval方法。 sub = tf.sub(x, a)print (sub.eval())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

法二:

#自动关闭会话with tf.Session() as sess:    los=sess.run(loss)    sess.run(train)#指定CPU或GPUwith tf.Session() as sess:    with tf.device("/gpu:1"):        matrix1 = tf.constant([[3., 3.]])        matrix2 = tf.constant([[2.],[2.]])        product = tf.matmul(matrix1, matrix2)

1 个回复

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