Tensorflow基础

目录

1. tensorflow介绍

1.1 tensorflow是什么

1.2 tensoeflow的特性

1.3 tensoeflow1.0

1.3.1 主要特性

1.3.2 tensoeflow1.0架构

1.4 tensoeflow2.0 

1.4.1 主要特性

1.4.2 tensoeflow2.0架构

2. Tensorflow Vs Pytorch

2.1 入门时间

2.1.1 Tensorflow1.*

2.1.2 Tensoeflow2.0

2.1.3 pytorch

2.2图创建和调试

2.2.1 tensorflow1.*

2.2.2 tensorflow2.* 与pytorch

2.3 全面性

2.4 序列化和部署

3. tensorflow的安装

3.1 mac 在anaconda 下安装tensorflow

(1)建立一个Tensorflow的运行环境

(2)设置国内镜像

(3)安装Tensorflow

(4)简单测试是否安装成功

(5)安装OpenCV

3.2 mac 在docker 下安装tensorflow


1. tensorflow介绍

Google的开源软件库

  • 采用数据流图,用于数值计算
  • 支持多种平台——GPU,CPU,移动设备
  • 最初用于深度学习,变得越来越通用

1.1 tensorflow是什么

数据流图

节点——处理数据

线——节点间的输入输出关系

线上运输张量

节点被分配到各种计算设备上运行

1.2 tensoeflow的特性

  • 高度的灵活性
  • 自动求微分
  • 真正的可移植性
  • 多语言支持
  • 产品和科研结合
  • 性能最优化

1.3 tensoeflow1.0

1.3.1 主要特性

  • XLA——Accelerate Linear Algebra
  •           提升训练速度58倍
  •           可以在移动设备上运行
  • 引入更高级的API——tf.layers/tf.metrics/tf.losses/tf.keras
  • Tensofrlow调试器
  • 支持docker镜像,引入tensorflow serving服务

1.3.2 tensoeflow1.0架构

1.3.3 tf1.0 API列表

(1)tf1.0实现全连接网络

placeholder,

tf.layers.dense,

tf.train.AdamOptimizer

tf.losses.sparse_softmax_cross_entropy,

tf.global_variables_initializer

feed_dict

(2) Dataset

Dataset.make_one_shot_iterator

Dataset.make_initializable_iterator

(3) 自定义estimator

tf.feature_column.input_layer

tf.estimator.EstimatorSpec

tf.estimator.accuracy

1.3.4 tf1.0 升级为tf2.0代码

1.4 tensoeflow2.0 

1.4.1 主要特性

(1)Tf.keras 和 eager mode进行更加简单的模型构建

使用tf.data加载数据;

使用tf.keras构建模型,使用premade estimator来验证模型,使用tensorflow hub进行迁移学习;

使用eager mode进行运行和调试

使用分发策略来进行分布式训练

导入导出到SaveModel

使用tensorflow Server,tensorflow Lite,tensorflow.js部署模型

(2)鲁棒的跨平台模型部署

Tensorflow服务——直接通过https/rest或GRPC/协议缓冲区

Tensorflow Lite——可部署在Android,ios和嵌入式系统上

Tensorflow.js——在javascript中部署模型

其他语言——C,java,Go,C#,Rust,Julia ,R等

(3)强大的研究实验

Keras功能API和子类API,允许创建复杂的拓扑结构

自定义训练逻辑,使用tf.GradientTape和tf.custom_gradienti进行更细粒度的控制

低层API自始至终可以与高层结合使用,完全的可定制

高级扩展:Ragged Tensor,Tensor2Tensor等

(4)清除不推荐使用的API和减少重复来简化API

1.4.2 tensoeflow2.0架构

2. Tensorflow Vs Pytorch

2.1 入门时间

2.1.1 Tensorflow1.*

(1)静态图(效率高),需要学习额外的概念(图,会话,变量,占位符等),需要写一些样本代码

静态图相对应的是声明式编程

声明式编程:

与声明式编程“相反”的是命令式编程

命令式编程

2.1.2 Tensoeflow2.0

动态图(调试容易),即命令式编程

Eager mode避免1.0缺点,直接集成在python中

2.1.3 pytorch

动态图(调试容易)

Numpy的扩展,直接集成在python中

2.2图创建和调试

2.2.1 tensorflow1.*

静态图,难以调试,学习tfdbg调试

2.2.2 tensorflow2.* 与pytorch

动态图,python自带调试工具

2.3 全面性

Pytorch缺少

  • 沿维翻转张量(np.flip, np.flipud, np.fliplr)
  • 检查无穷与非数值张量(np.is_nan, np.is_inf)
  • 快速傅立叶变换(np.fft)

随着时间变化,tensorflow和pytorch越来越接近

2.4 序列化和部署

Tensorflow 支持更加广泛

  • 图保存为protocol buffer
  • 跨语言
  • 跨平台

Pytorch支持比较简单

3. tensorflow的安装

3.1 mac 在anaconda 下安装tensorflow

(1)建立一个Tensorflow的运行环境

// 创建环境$ conda create -n tensorflow python=3.5// 移除环境conda remove --name tensorflow --all目前Mac上的Tensorflow仅仅支持CPU版本,而且3.0以上版本仅支持3.5版本,所以创建环境的时候一定要加上Python=3.5。详情可以去Github Tensorflow查看。

(2)设置国内镜像

清华开源软件镜像站

如果需要安装很多packages,你会发现conda下载的速度经常很慢,因为Anaconda.org的服务器在国外。所幸的是,清华TUNA镜像源有Anaconda仓库的镜像,我们将其加入conda的配置即可:
# 添加Anaconda的TUNA镜像conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/# TUNA的help中镜像地址加有引号,需要去掉
# 设置搜索时显示通道地址conda config --set show_channel_urls yes

(3)安装Tensorflow

目前仅仅是创建了一个空的环境,仅有与Python3.5相关的一些包,我们需要先激活环境,然后安装Tensorflow。
// 激活环境
$ source activate tensorflow
// 安装Tensorflow
$ pip install tensorflow
// 关闭环境
$ source deactivate

(4)简单测试是否安装成功

>>>import tensorflow as tf
>>>hello = tf.constant('Hello, TensorFlow!')
>>>sess = tf.Session()
>>>print(sess.run(hello))
Hello,TensorFlow!

使用Jupyter notebook

永久更改 Jupyter notebook 默认目录路径
创建Jupyter notebook的配置文件jupyter_notebook_config.py,
在终端中输入:
$ jupyter notebook --generate-config

打开jupyter_notebook_config.py,找到下文字:

// 打开jupyter_notebook_config.py
$ cd .jupyter
$ vim jupyter_notebook_config.py

// 找到如下文字
## The default URL to redirect to from `/`
#c.NotebookApp.default_url = '/tree'
将其修改为:
## The default URL to redirect to from `/`
c.NotebookApp.default_url = '/tree/DeepLearning'
// 此时,Jupyter notebook的默认目录路径就变成了/home/DeepLearning
该方法只能通过根目录启动Jupyter notebook,从其他目录启动会出现Jupyter notebook网页无法显示的状态。
单次更改 Jupyter notebook 默认目录路径
// 在终端中cd到目标目录:
$ cd ~/DeepLearning
$ jupyter notebook

(5)安装OpenCV

pip install opencv-python

3.2 mac 在docker 下安装tensorflow

详见网址Docker简介_zhao_crystal的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值