TensorLayer学习之简介与安装
Tensorlayer简介
深度学习框架使用的问题
对于深度学习开发者来说,深度学习系统变得越来越复杂。以至于我们需要使用轻量级的工具从头到尾来管理流程,为了将更多的连续学习内置到神经网络中,这就要求我们建立可以迭代增强的更有弹性的数据集以及更多的动态模型。 深度学习开发人员必须花费大量的时间来整合神经网络的组件,管理模型生命周期,组织数据和调整系统并行度等等。随着使用新的培训样本后,人类对于神经网络模型的见解,更新模型和跟踪其变化的能力就变得非常必要了。为此伦敦帝国理工学院的一个团队开发了一个python库来管理跨学科开发人员项目的复杂迭代过程。
TensorLayer诞生
为了更好地管理开发过程,该团队开发了一个通用的Python库——TensorLayer。这个库集成了很多开发过程中包括的方法,其中包括(操作、模型生命周期、并行计算、失败)都以模块化进行抽象。这些模块包括以下功能:
- 用于管理神经网络层
- 用于管理模型和其生命周期
- 用于管理数据集
- 解决容错的工作流模块。
Keras与TFLearn的弊端
虽然像Keras和TFLearn这样的工具现在很有用,但它们并不像网络那样可以随网络的扩张变得更复杂甚至无限制的迭代。它们提供了必要的抽象,以降低使用工具的门槛,但又掩盖了很多底层的算法。虽然对开发者有好处,但是相对来说底层技术就变得难以调整和修改,而底层技术的修改和调整,这在解决许多现实世界的问题上是非常必要的。
TensorLayer的特点
与Keras和TFLearn相比,TensorLayer不仅提供了高级抽象,而且提供了包括数据预处理、训练、训练后处理,以及服务模块和数据库管理在内的端到端工作流程,这些是开发者建立一个完整模型所需要的全部过程。 TensorLayer倡导更灵活且可组合的范式:神经网络库可以与本机引擎交换使用。这允许开发者轻松地利用预建模块,而且不会影响可见性。这种非侵入性也使得与其他TF的包装器如TF-Slim和Keras合并成为了可能。并且开发小组认为,灵活性不会影响性能。
Tensorlayer环境搭建(CPU版)
- conda 4.4.10
- python 3.5
- opencv 3.2.0
- tensorflow 1.7.0
- tensorlayer 源码安装
安装步骤
查看conda环境
conda env list
#或者
conda info -e
新建conda虚拟环境(tensorlayer)
conda create -n tensorlayer python=3.5 ipykernel
进入搭建的tensorlayer环境
source activate tensorlayer
安装tensoflow1.7.0
采用清华的镜像源进行安装(CPU版) 网址:https://mirrors.tuna.tsinghua.edu.cn/help/tensorflow/
pip install
-i https://pypi.tuna.tsinghua.edu.cn/simple/
https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/cpu/tensorflow-1.7.0-cp35-cp35m-linux_x86_64.whl
安装opencv3
conda install -c https://conda.anaconda.org/menpo opencv3
下载并安装tensorlayer
git clone https://github.com/tensorlayer/tensorlayer.git
cd tensorlayer
pip install -e .
Jupyter notebook加载虚拟环境
#一定要在虚拟环境中!!
source activate tensorlayer
python -m ipykernel install --user --name tensorlayer --display-name "Python (tensorlayer)"
测试
python
>>> import tensorflow
>>> import tensorlayer
参考
新工具——TensorLayer:管理深度学习项目的复杂性 https://yq.aliyun.com/articles/158384
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【redis】跟我一起动手玩玩redis主从复制和哨兵模式
- 【C++】八大排序算法 :GIF + 亲测代码 +专项练习平台
- 【C++】勉强能看的线程池详解
- 国密SSL协议之Java编程
- 7. Jackson用树模型处理JSON是必备技能,不信你看
- epoll,求知者离我近点
- SOCKET网络编程 (通俗易懂入门篇)
- 进程 · 全家桶
- Posix线程 它们那一大家子事儿,要觉得好你就收藏进被窝慢慢看(2)
- Posix线程 它们那一大家子事儿,要觉得好你就收藏进被窝里慢慢看 (1)
- 种树:二叉树、二叉搜索树、AVL树、红黑树、哈夫曼树、B树、树与森林
- 【Linux内核】进程管理
- Django后台管理界面修改(代码修改)
- OpsnSSH抓包分析 | SSH协议分析
- 搭建简易的物联网服务端和客户端-第三次增补(二十二)