TensorFlow基础实验

1. 实验目标

  初步认识 𝑇𝑒𝑛𝑠𝑜𝑟𝐹𝑙𝑜𝑤库的用途
  初步学习 𝑇𝑒𝑛𝑠𝑜𝑟𝐹𝑙𝑜𝑤数据的操作

2. 实验内容描述

  2.1 本次实验主要使用的 𝑃𝑦𝑡ℎ𝑜𝑛库        
            | 名称  | 简介 |
         | 𝑁𝑢𝑚𝑝𝑦 | 数组运算、矩阵运算、生成随机数
         |𝑇𝑒𝑛𝑠𝑜𝑟𝐹𝑙𝑜𝑤  | 深度学习第三方库 |

   2.2 理论学习

  𝑇𝑒𝑛𝑠𝑜𝑟𝐹𝑙𝑜𝑤 的基本概念

    2.3 实践实验

   𝑇𝑒𝑛𝑠𝑜𝑟𝐹𝑙𝑜𝑤的安装
   常量、变量、会话的创建以及它的属性

3. 适用的对象

  3.1 先导课程

需要具备 𝑃𝑦𝑡ℎ𝑜𝑛基础
需要具备数据可视化基础

  3.2 学习者

  本科学生、研究生
   人工智能、算法相关研究者、开发者

  3.3 课程范畴

   大数据、与人工智能

4. 实验流程图

在这里插入图片描述

理论学习部分

TensorFlow基本概念

使用图(graphs)来表示计算任务
在被称之为会话(Session)的上下文(Context)中执行图
使用 Tensor 表示数据
通过变量(Variable)维护状态
使用 feed 和 Fetch 可以为任意的操作赋值或者从中获取数据

TensorFlow 是一个编程系统,使用图 graphs 来表示计算任务,图 graphs 中的节点称之为 operation,一个 operation 获得 0 个或者多个 Tensor,执行计算,产生 0 个或者多个 Tensor。Tensor 看作是一个 n 维的数组或者列表。图必须在会话 Session 里被启动。
在这里插入图片描述

实践操作部分

**首先,安装本次实验需要的 𝑇𝑒𝑛𝑠𝑜𝑟𝐹𝑙𝑜𝑤 第三方库。**
!pip install numpy==1.16.0
!pip install tensorflow==1.13.1

步骤 1 引入TensorFlow

        import tensorflow as tf

步骤 2 创建常量以及计算*

     **步骤 2.1 创建常量创建计算**
   
        # 创建两个常量
        m1 = tf.constant([[3, 3]])
        m2 = tf.constant([[2], [3]])
      #创建一个矩阵乘法,并把m1,m2传入
        product = tf.matmul(m1, m2)
        print(product)

     **步骤 2.2 创建 Session 会话,完成上述计算**
      # 定义Session,启动会话
      sess = tf.Session()
      #调用run方法调用会话,查看计算结果
      result = sess.run(product)
      print(result)
      sess.close()


 **步骤 2.3 创建 Session 会话,展示计算结果**
       with tf.Session() as sess:
             result = sess.run(product)
             print(result)

步骤 3 定义变量

      **步骤 3.1 变量的定义以及计算**
   #定义常量
   x = tf.Variable([1, 2])
   #定义常量
   a = tf.constant([3, 3])
   #定义减法操作
   sub = tf.subtract(x, a)
   #定义加法操作
   add = tf.add(x, sub)
   #全局初始化变量
   init = tf.global_variables_initializer()

   with tf.Session() as sess:
         sess.run(init)
        # 打印计算结果
         print(sess.run(sub))
         print(sess.run(add))
  **步骤 3.2 变量的自增操作**
  # 创建一个变量初始化为0
  state = tf.Variable(0, name='counter')
  # 创建一个操作,作用是使 state 加 1
  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(4):
             sess.run(update)
             print(sess.run(state))

步骤 4 Fetch 和 feed

步骤 4.1 Fetch 操作
# Fetch 同时运行多个操作
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)
**步骤 4.2 Feed 操作**
# Feed
# 创建占位符 placeholder
input1 = tf.placeholder(tf.float32)
input2 = tf.placeholder(tf.float32)
output = tf.multiply(input1, input2)

with tf.Session() as sess:
      # feed 的数据以字典的形式传入
      print(sess.run(output, feed_dict={input1: [8.], input2: [2. ]}))

步骤 5 TensorFlow 简单示例

     # 引入第三方库 TensorFlow 与 Numpy
     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

     # 损失函数
     loss = tf.reduce_mean(tf.square(y_data - y))
     # 定义一个随机梯度下降法来进行训练器
     optimizer = tf.train.GradientDescentOptimizer(0.2)
     # 最小化loss
     train = optimizer.minimize(loss)
     # 初始化变量
     init = tf.global_variables_initializer()

     with tf.Session() as sess:
           sess.run(init)
           for step in range(201):
                sess.run(train)
                # 每 20step 打印一次结果
                if step%20 == 0:
                     print('step: ', step, 'K & b: ', sess.run([k, b]), 'loss: ', sess.run(loss))

小结


本节实验首先讲述了,TensorFlow的常量、变量的定义、Session 对话方法的简单用法。
根据最后面的小例子,尝试修改不同的 K&b 值观察神经网络是否能够优化出相应的参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值