Python神经网络1之TensorFlow

Python神经网络1之TensorFlow

深度学习介绍

深度学习与机器学习的区别

特征提取方面

Python神经网络1之TensorFlow
  1. 机器学习的特征工程步骤是要靠手动完成的,需要大量领域的专业知识
  2. 深度学习通常用多个层组成,它们通常将更简单的模型组合在一起,将数据从一层传递到另一层来构建更复杂的模型,通过训练大量数据自动得出模型,不需要人工特征提取环节

; 数据量和计算性能方面要求

Python神经网络1之TensorFlow
  1. 深度学习需要大量的训练数据集
  2. 训练深度神经网络需要大量的算力

算法代表

  1. 机器学习 -朴素贝叶斯、决策树
  2. 深度学习 -神经网络

深度学习框架介绍

框架名主语言从语言灵活性上手难易开发者TensorflowC++cuda/python好难GooglePyTorchpythonC/C++好中等FaceBookCaffeeC++cuda/python/Matlab一般中等贾杨清MXNetc++cyda/R/julia好中等李沐和陈天奇等Torchluac/cuda好中等FaceBookTheanopythonC++/cuda好易蒙特利尔理工学院

总结:

  1. 最常用的框架当数TensorFlow和Pytorch,而Caffee和Caffee2次之
  2. PyTorch和Torch更适用于学术研究,TensorFlow,Caffee,Caffee2更适用于工业界的生产环境部署
  3. Caffee适用于处理静态图像,Torch和PyTorch更适用于动态图像,TensorFlow在两种情况下都很实用
  4. TensorFlow和Caffee2可在移动端实用

TensorFlow的安装

  1. CPU与GPU的对比
    CPU:核芯的数量更少,但是每一个核芯的速度更快,性能更强,更适用于处理连续性的任务
    GPU:核芯的数量更多,但是每一个核芯的处理速度较慢,更适用于并行任务
  2. CPU版本
    macOS安装

pip install tensorflow==1.8 -i https://mirrors.aliyun.com/pypi/simple

TensorFlow框架介绍

TensorFlow结构分析

TensorFlow程序通常被组织成一个构建图阶段和一个执行图阶段
在构建阶段,数据和操作的执行步骤以图的形式描述

[En]

During the construction phase, the execution steps of the data and operations are described as a diagram

在执行阶段,使用对话密友构建的图表中的操作

[En]

In the execution phase, use the actions in the diagram constructed by the conversational confidant

  • 构建图—-类似流程图,定义数据和操作
  • 执行图—-调用各方资源,将定义好的数据和操作运行起来

图和会话:

  1. 图:这是TensorFlow将计算表示为指令之间的依赖关系的一种表示法
  2. 会话:TensorFlow跨一个或多个本地或远程设备运行数据流图的机制
  3. 张量:TensorFlow中的基本数据对象
  4. 节点:提供图当中执行的操作
    TensorFlow是一个采用数据流图,用于数值计算的开源框架
    节点表示图中的数学运算,线条表示相互关联的数据的多维数组,即张量。
    [En]

    The node represents the mathematical operation in the graph, and the line represents the multidimensional array of data related to each other, that is, the tensor.

案例加法展示

pycharm上主流是2.x版本的,添加
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
这两行代码将2.x版本变成1.x版本来学习

import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'

def tensorflow_demo01():

    a=tf.constant(2);
    b=tf.constant(3);
    c=a+b;
    print(c)

    with tf.Session() as sess:
        c_t=sess.run(c)
        print("c_value:",c_t)

    return None;

if __name__=='__main__':
    tensorflow_demo01();

Python神经网络1之TensorFlow

图与TensorBoard

简单来说,图结构 就是 图数据+操作

图相关操作

默认图

通常TensorFlow会默认帮我们创建一张图
查看默认图的两种方法:

  1. 调用tf.get_default_graph()访问,
    Python神经网络1之TensorFlow
def graph_tensorflow_demo02():
    a=tf.constant(2)
    b=tf.constant(3)
    c=a+b
    print("c:",c)

    g_graph=tf.get_default_graph()
    print("g的图属性:",g_graph)

    with tf.Session() as sess:
        c_t=sess.run(c)
        print("c_t:",c_t)

        print("session的图属性:",sess.graph)
        print("a_g:",a.graph)
        print("b_g:",b.graph)

    return None;

Python神经网络1之TensorFlow

创建图

  • 通过tf.Graph()自定义创建图
  • 如果要在这张图中创建OP,典型用法就是使用tf.Graph.as_default()上下文管理器

不能在自定义图中运行数据和操作

def diy_graph_tensorflow_demo03():

    new_Graph=tf.Graph()

    a=tf.constant(20)
    b=tf.constant(30)
    c=a+b

    with new_Graph.as_default():
        a_new=tf.constant(20)
        b_new=tf.constant(30)
        c_new=a_new+b_new;
        print("c_new:\n",c_new)
        print("a_graph:\n",a_new.graph)
        print("b_graph:\n",b_new.graph)

    with tf.Session() as sess:
        c_value=sess.run(c)
        print("c_value:\n",c_value)

    with tf.Session(graph=new_Graph) as new_sess:
        c_new_value=new_sess.run(c_new)
        print("c_new_value:\n",c_new_value)

    return None;

Python神经网络1之TensorFlow

TensorBoard:可视化学习

实现程序可视化过程:

  1. 数据序列化-events文件
    tf.summary.FileWriter(path,graph=sess.graph)
  2. 启动TensorBoard
    tensorboard –logdir=path
def demo03():
    a=tf.constant(10)
    b=tf.constant(20)
    print("a\n", a)
    print("b\n", b)
    c=a+b

    with tf.Session() as sess:
        c_value=sess.run(c)
        print("c_value:\n",c_value)
        tf.summary.FileWriter("./tmp/summary",graph=sess.graph)

Python神经网络1之TensorFlow
Python神经网络1之TensorFlow
Python神经网络1之TensorFlow

OP

数据:Tensor对象
操作:Oeration对象 -OP

  1. 常见OP
    Python神经网络1之TensorFlow

操作函数操作对象tf.constant(Tensor对象)输入Tensor对象 —Constant -输出 Tensor对象tf.add(Tensor对象1,Tensor对象2)输入Tensor对象1,Tensor对象2 —Add对象 -输出 Tensor对象3

  1. 指令名称
    一张图对应一个命名空间
    tf.Graph对象为其包含的tf.Operation对象定义的一个命名空间。用户可以指定描述性名称,使程序阅读起来更轻松
def demo04():
    a=tf.constant(1,name="a")
    b=tf.constant(2,name="b")
    print("a\n",a)
    print("b\n",b)
    c=tf.add(a,b,name="c")
    print("c:\n",c)

        with tf.Session() as sess:
        c_value=sess.run(c)
        tf.summary.FileWriter("./tmp/summary",graph=sess.graph)
        print("c_value:\n",c_value)

Python神经网络1之TensorFlow
Python神经网络1之TensorFlow

Original: https://blog.csdn.net/qq_34306228/article/details/124075894
Author: VillanelleS
Title: Python神经网络1之TensorFlow

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/497155/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球