tensorflow的介绍及安装

一、tensorflow的介绍
①什么是数据流编程?
数据流编程是一种解决多核处理器的效率利用问题的高性能并行编程模型。数据流编程与传统编程语言有着明显区别,它通过数据驱动的方式执行,将需要处理的数据分配到各个核上,将数据的计算与通信相分离,通过任务调度与分配,利用软件流水的并行特性来充分的挖掘流程序中潜在的并行性,使各个核之间负载均衡。在数据流范例中,一个数据流程序的静态实例会按照它的结构被描述成一张有向图。图中节点表示计算单元,边代表数据传输路径。相邻节点间通过边传输数据,节点消耗数据进行计算,并将产生的数据输出到输入输出序列作为下一个计算单元的输入。

数据流编程语言主要关注程序的状态,并根据状态的变化导致操作发生。数据流编程语言本质上是并行的,因为操作依赖于满足时会导致操作执行的输入。这意味着与一个正常程序不同,后一个操作后跟着一个操作,在数据流程序中,只要满足输入并且没有设定顺序,操作就会执行。 通常,数据流编程语言使用大型哈希表,其中键是程序的数据,而表的值是指向程序操作的指针。

数据流:
数据流是指一组有顺序的、有起点和终点的字节集合,程序从键盘接收数据或向文件中写数据,以及在网络连接上进行数据的读写操作,都可以使用数据流来完成。数据的性质、格式不同,则对流的处理方法也不同
②tensorflow:是一个基于数据流编程的符号数学系统,在图形分类、音频处理、推荐系统和自然语言处理等场景下有着丰富的应用。它支持多种客户端语言下的安装与运行。python语言下有四个不同的版本:CPU版本(tensorflow)、包含GPU加速的版本(tensorflow-gpu),以及它们的每日编译版本(tf-nightly、tf-nightly-gpu)。TensorFlow的Python版本支持Ubuntu 16.04、Windows 、macOS 10.12.6 Sierra、Raspbian 9.0及对应的更高版本,其中macOS版不包含GPU加速 。安装Python版TensorFlow可以使用模块管理工具pip/pip3 或anaconda并在终端直接运行。
③tensorflow的特点

  • 支持所有流行语言,如 Python、C++、Java、R和Go。
  • 可以在多种平台上工作,甚至是移动平台和分布式平台。
  • 受到所有云服务(AWS、Google和Azure)的支持。
  • Keras——高级神经网络 API,已经与 TensorFlow 整合。
  • 与 Torch/Theano 比较,TensorFlow 拥有更好的计算图表可视化。
  • 允许模型部署到工业生产中,并且容易使用。
  • 有非常好的社区支持。
    ④几种主流深度学习框架
  • TensorFlow:
    TensorFlow是Google Brain基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理,于2015年11月9日在Apache 2.0开源许可证下发布,并于2017年12月份预发布动态图机制Eager Execution。学习难度上比较大,但是比较灵活。
  • Keras:
    Keras是一个用Python编写的开源神经网络库,它能够在TensorFlow,CNTK,Theano或MXNet上运行。旨在实现深度神经网络的快速实验,它专注于用户友好,模块化和可扩展性。其主要作者和维护者是Google工程师FrançoisChollet。
    Keras是一种高级API,基于多种深度学习框架,追求简洁,快速搭建模型,具有完美的训练预测模块,简单上手,并能快速地将所想变现,十分适合入门或者快速实现。但是学习会很快遇到瓶颈,过度的封装导致对于深度学习知识的学习不足以及对于已有神经网络层的改写十分复杂。
  • MXNet:
    MXNet是DMLC(Distributed Machine Learning Community)开发的一款开源的、轻量级、可移植的、灵活的深度学习库,它让用户可以混合使用符号编程模式和指令式编程模式来最大化效率和灵活性,目前已经是AWS官方推荐的深度学习框架。MXNet的很多作者都是中国人,其最大的贡献组织为百度。
  • PyTorch:
    PyTorch是Facebook于2017年1月18日发布的python端的开源的深度学习库,基于Torch。支持动态计算图,提供很好的灵活性。在2018年五月份的开发者大会上,Facebook宣布实现PyTorch与Caffe2无缝结合的PyTorch1.0版本将马上到来。

二、1.0与2.0的区别
①静态图
静态图(代表:早期的Tensorflow):只有定义好一个完整的网络结构(Graph),才能开始执行整个图(创建session,通过参数graph=xxx指定当前会话运行的计算图),且在运行过程中不能对图进行修改(比如添加网络结点、删除结点等操作)。整个过程和C语言编译很像,一旦构图完成开始执行训练,就不能对网络结构进行改变。声明式编程。一次构建,多次使用;构建过程稍微繁琐;性能好,速度快。
②动态图
动态图(代表:PyTorch和1.4及以上版本的Tensorflow) :在动态图中,可以用各种逻辑控制语法(比如if else等),按照代码顺序执行,且可以在模型中间输出,整个过程和顺序执行的代码没什么两样。在前向传播中,一边执行一边生成本次的计算图,直到到最后一层生成完整的图,再进行反向传播。所以动态图每次喂入数据都会重新构建。这样有一个缺点,就是执行速度会比静态图稍慢。 命令式编程。图的构建很灵活,可以用Python的控制流;方便debug;操作可立即获得执行结果,无需等待图全部构建完成。
早期学术界更偏爱PyTorch动态图强大的debug能力,工业界更偏爱Tensorflow静态图快速稳定的能力。
1.0版本

import tensorflow as tf
a=tf.constant(10)
b=tf.constant(12)
sess.run(a+b)
>>>22

随着Tensorflow 1.4版本的推出,Eager Execution终于出现了,这个版本在兼容老版本的基础上,将动态图机制加入到了Tensorflow中,使其像PyTorch一样能够构建动态图,从此Tensorflow既能构建动态图也能构建静态图。
在这里插入图片描述
③在tensorflow2.0中,模型从构建到上线一般是以下步骤:

  1. 加载数据:用tf.data加载数据,使用 tf.feature_column描述特征,例如离散特征,密集特征乃至于交叉特征。支持从多种文件格式中读取数据。
  2. 构建模型:使用tf.keras、预定义和自定义Estimators构建、训练和验证模型。Keras 与 TensorFlow的其余部分紧密集成,因此你可以随时访问 TensorFlow 的功能。如果不想从头开始训练一个模型,你很快就能通过TensorFlow Hub模块利用迁移学习来训练Keras或 Estimator模型。Fine turn
  3. 运行及调试:用eager execution运行和调试,然后在计算图上使用 tf.function。TensorFlow 2.0默认用 eager execution 运行,相对于1.0来说使用更加轻松、调试更加顺利。此外,tf.function标注可以将普通Python程序转换成 TensorFlow图。这个过程保留了 TensorFlow1.x 基于计算图执行的所有优点:性能优化、远程执行,以及序列化、导出和部署的能力,同时增加了用简单Python表达程序的灵活性和易用性。
  4. 使用分布式策略进行分布式训练。对于大部分机器学习训练任务来说,分布式策略API使得在不同的硬件配置上分布和训练模型变得很容易,而无需改变模型定义。(数据并行,模型并行,模型计算流水线并行)
  5. 导出至 SavedModel。TensorFlow 将在 SavedModel 上标准化,来作为 TentsorFlow Serving、TensorFlow Lite、TensorFlow.js、TentsorFlow Hub 等的交换格式。
  6. 在任意平台上实现稳健的生产环境模型部署
    三、
      TensorFlow提供多平台的产品化路径。不论是在服务器、边缘设备还是网页上,也不论你使用的是什么语言或平台,TensorFlow总能让你轻易训练和部署模型。在 TensorFlow 2.0 中,支持:
      TensorFlow Serving服务:允许通过 HTTP/REST 或 gRPC /协议缓冲区为模型提供服务的 TensorFlow 库。
      TensorFlow Lite:TensorFlow 针对移动和嵌入式设备的轻量级解决方案提供了在 Android、iOS 和嵌入式系统(如 Raspberry Pi 和 Edge TPU)上部署模型的能力。
      TensorFlow.js:支持在 JavaScript 环境中部署模型,例如通过 Node.js. TensorFlow.js 在 web 浏览器或服务器端部署模型,还支持在 JavaScript 中定义模型和在 web 浏览器中使用类似 Keras 的 API 直接训练模型。
      TensorFlow 还支持其它语言(由更广泛的社区维护),包括:C、Java、Go、C#、Rust、Julia、R 等等。
    四、安装
    检测anaconda环境是否安装成功:conda –version
    在这里插入图片描述
    安装Tensorflow时,需要从Anaconda仓库中下载,一般默认链接的都是国外镜像地址,这里使用国内清华镜像,需要改一下链接镜像的地址。这里,我们打开安装好的Anaconda中的 Anaconda Prompt,然后输入:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/     conda config --set show_channel_urls yes

这两行代码用来改成连接清华镜像的
接下来安装Tensorflow,在Anaconda Prompt中输入:

conda create -n tensorflow python=3.5.4

在这里插入图片描述
安装tensorflow

pip install tensorflow

安装时遇到了python报错ModelNotFoundError
输入

pip install --upgrade --ignore-installed tensorflow

等待完成之后,确认是否安装成功
打开jupyter notebook

import tensorflow as tf
from tensorflow.keras import layers
print(tf.__version__)
print(tf.keras.__version__)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值