目录
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
Google的开源软件库
数据流图
节点——处理数据
线——节点间的输入输出关系
线上运输张量
节点被分配到各种计算设备上运行
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)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)静态图(效率高),需要学习额外的概念(图,会话,变量,占位符等),需要写一些样本代码
静态图相对应的是声明式编程。
声明式编程:
与声明式编程“相反”的是命令式编程
命令式编程
动态图(调试容易),即命令式编程
Eager mode避免1.0缺点,直接集成在python中
动态图(调试容易)
Numpy的扩展,直接集成在python中
静态图,难以调试,学习tfdbg调试
动态图,python自带调试工具
Pytorch缺少
随着时间变化,tensorflow和pytorch越来越接近
Tensorflow 支持更加广泛
Pytorch支持比较简单
// 创建环境$ conda create -n tensorflow python=3.5
// 移除环境conda remove --name tensorflow --all
目前Mac上的Tensorflow仅仅支持CPU版本,而且3.0以上版本仅支持3.5版本,所以创建环境的时候一定要加上Python=3.5。详情可以去Github Tensorflow查看。
清华开源软件镜像站
如果需要安装很多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
目前仅仅是创建了一个空的环境,仅有与Python3.5相关的一些包,我们需要先激活环境,然后安装Tensorflow。
// 激活环境
$ source activate tensorflow
// 安装Tensorflow
$ pip install tensorflow
// 关闭环境
$ source deactivate
>>>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
pip install opencv-python
详见网址Docker简介_zhao_crystal的博客-CSDN博客