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

 

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

  • 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。 

张量的阶

 

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

 

posted @ 2021-02-20 18:30  划水De雁小明  阅读(4357)  评论(0编辑  收藏  举报