深度学习框架:TensorFlow(简介)

 

目前最主流的深度框架有 TensorFlow、Pytorch 以及 Keras。其中:python

  • TensorFlow 是被使用最普遍的一个深度学习框架,已普遍的运用在如,图像识别、图片分类等领域。
  • PyTorch 是一个开源的 Python 机器学习库,基于 Torch 开发,底层由 C++实现,也被普遍使用在人工智能领域;
  • Keras 则是 Python 编写的高级神经网络 API,它能够将 TensorFlow、CNTK,或是 Theano 做为后端程序来用,它的代码简单、易读。

 

 

 

TensorFlow的核心概念后端

 

 

  1. 张量(Tensor ):TensorFlow中的基本数据对象,做为图中的节点(Operation,提供图当中执行的操做)的输入输出,在节点之间流动(Flow),所以得名。能够被理解成一个多维数组,TensorFlow 的张量与 Numpy 的数组比较类似。其中的每一个元素都具备相同的数据类型,且该数据类型必定是已知的(使用 tensor 的 dtpye 属性查看 tensor 的数据类型)。张量是有形状的(经过 tensor 的 shape 属性查看 tensor 的形状),关于 tensor 的形状有两个术语:秩、轴(维度)。 
    • :张量维度的数目。
    • (维度):轴(维度)就是咱们计算机科学中数组的维度。例如,向量的维度就是 1,矩阵的维度就是 2。 

张量的阶api

 

2. 计算图:是一个有向图,又能够叫做数据流图(data flow graphs),是TensorFlow将计算表示为指令之间的依赖关系的一种表示法。它是 TensorFlow 操做对象(tf.Operation)与张量对象(tf.Tensor)的集合。操做对象是图中的节点,是图中的计算单元,张量对象是图的边,是在节点之间流动的数据。TensorFlow 的 3 种计算图,分别是:数组

    • 静态计算图:优势是高效,在分布式训练、性能优化和生产部署方面都有优点。定义好以后能够反复执行。
    • 动态计算图:TensorFlow 2 中 Eager Execution 模型就是采用动态计算图方式,大大地提升了代码的简洁性,且很是易于调试。
    • Autograph:兼顾代码的可读性与运行的高性能,TensorFlow 2 中提出了 Autograph只要在 Python 的函数前加上@tf.function 标签,就能够将 Python 的函数转换为静态计算图。

 

 3.会话:TensorFlow跨一个或者过个本地或远程设备运行数据流图的机制。浏览器

 

 

TensorFlow 2 中几个比较经常使用的 API性能优化

 

  • tf.compact
  • tf.data
  • tf.image
  • tf.nn
  • tf.keras
  • tf.lite
  • tf.math

 

高效的实验分析助手-TensorBoard网络

 

 能够经过 Web 页面提供查看细节与过程的功能,它将模型的细节与过程,经过浏览器可视化的方式进行展示,帮助使用者感知各个参数与指标的变化,把握训练趋势。框架

 

 

参考:机器学习

 

1. TensorFlow 2.0的API详解:https://tensorflow.google.cn/versions/r2.0/api_docs/python/tf分布式

2. 可视化TensorFlow运行:

TensorFlow是一个采用数据流图,用于数值计算的开源框架。节点在图中表示数学操做,线则表示在节点互相联系的多维数据数组,即张量

 

 

3.Python安装TensorFlow常见报错:

W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcudart.so.10.1'; dlerror: libcudart.so.10.1: cannot open shared object file: No such file or directory
I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.

 

I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
  • 问题分析与解决方式:当前的CPU能够支持未编译为二进制的指令AVX2 ;要想消除该提示,须要在代码中添加两行代码:(用于设置TensorFlow的日志级别的) 
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
View Code