【深度学习】TensorFlow基本结构分析

122 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第10天,点击查看活动详情

1. 机器学习与深度学习

在特征提取方面:

  1. 机器学习的特征工程步骤是要靠手动完成的,而且需要大量相关专业领域的知识。(传统机器学习算法)
  2. 深度学习通常由多个层组成(网络层次更深),它们通常将更简单的模型组合在一起,将数据从一层传递到另一层来构建更复杂的模型。通过训练大量数据自动得出模型,不需要人工特征提取环节。所以比较适合用在难提取特征点图像、语音、自然语言处理领域。(神经网络)

2. TensorFlow结构分析

我们使用TensorFlow1.x版本进行演示。在1.x版本中,TensorFlow程序通常被组织成一个构件图阶段和一个执行图阶段。

  • 在构建图阶段,数据与操作的执行步骤被描述成一个图
    • 在开启会话动作之前都是构建图,相当于定义了数据和操作的一个步骤
    • 比如定义了相加运算,直接打印不会出结果,看不到具体的值
    • 因为,只定义了操作,并没有真正的运行起来
  • 在执行阶段,使用会话执行构建好的图中的操作
    • 调用设备和资源,将之前定义好的数据和操作运行起来

张量:TensorFlow中的基本数据对象(存储数据) 节点:提供图当中执行的操作

3. 案例演示

步骤1:

导入相关库,因为我安装的是tensorflow2.x版本,因此使用后两行代码开启兼容模式,使得在2.x版本中运行1.x版本tensorflow语法。

import tensorflow as tf
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

步骤2:

定义一个函数,其中包括两个张量ten_1ten_2,并且定义一个相加运算,计算ten_1 + ten_2的结果,对比一下在开启会话前输出的结果与开启对话后输出的结果。

def tensorflow_1():
    
    # TensorFlow实现加法运算
    ten_1 = tf.constant(2)
    ten_2 = tf.constant(3)
    
    ten_3 = ten_1 + ten_2
    print("TensorFlow加法运算的结果:\n", ten_3)
    
    # 开启会话
    with tf.Session() as sess:
        ten_3_val = sess.run(ten_3)
        print("ten_3_val:\n", ten_3_val)
    return None

步骤3:

执行定义好的相加运算函数

tensorflow_1()

运行结果如下图所示:

  • 在运行结果中我们可以发现,没有开启会话之前直接输出的话并没有输出结果。(构建图阶段)
  • 开启会话后,相当于执行操作,进行结算。因此,有输出结果。(执行图阶段) image.png