『TensorFlow2.0正式版』TF2.0+Keras速成教程·零:开篇简介与环境准备
此篇教程参考自TensorFlow 2.0 + Keras Crash Course,在原文的基础上进行了适当的总结与改编,以适应于国内开发者的理解与使用,水平有限,如果写的不对的地方欢迎大家评论指出。觉得文章有用的话麻烦点赞,想看原文可以点击链接kx上网访问。
0 序
TensorFlow经过四年的发展,逐渐成为深度学习与机器学习框架的霸主,市场占有率与用户都遥遥领先于其他竞争对手。下图为下图是KDnuggets网站对2018年的机器学习框架的使用做的一个调查统计。可以可以看出当时TensorFlow已经遥遥领先于其他竞争(Keras 是一个上层封装,底层调用的还是 TensorFlow),奠定了其深度学习霸主的地位。
如果想了解TensorFlow的发展史,可以查看笔者CSDN约稿文章:『王霸之路』从0.1到2.0一文看尽TensorFlow奋斗史
TensorFlow和Keras都是在4年前发布的(Keras为2015年3月,TensorFlow为2015年11月)。在深度学习时代这是很长的时间!
在过去,TensorFlow 1.x + Keras存在许多已知问题:
- 使用TensorFlow意味着要处理静态计算图,对于习惯于命令式编码的程序员而言,这将感到尴尬且困难。
- 虽然TensorFlow API非常强大和灵活,但它缺乏完善性,常常令人困惑或难以使用。
- 尽管Keras的生产率很高且易于使用,但对于研究用例通常缺乏灵活性。
TensorFlow 2.0建立在以下关键思想之上:
- 让用户像在Numpy中一样急切地运行他们的计算。这使TensorFlow 2.0编程变得直观而Pythonic。
- 保留已编译图形的显着优势(用于性能,分布和部署)。这使TensorFlow快速,可扩展且可投入生产。
- 利用Keras作为其高级深度学习API,使TensorFlow易于上手且高效。
- 将Keras扩展到从非常高级(更易于使用,不太灵活)到非常低级(需要更多专业知识,但提供了极大灵活性)的工作流范围。
本系列教程综合了TensorFlow 2.0灵活方便与Keras简单好用的特点,使得开发人员能在几天的学习使用之后能掌握TensorFlow 2.0与Keras的简单使用。但是如果想真正掌握和理解深度学习技术,开发有趣好玩的应用,那么深度学习概念的学习是不可或缺的,需要读者自己花大量时间去学习和理解了。最后还是希望大家在学习深度学习开发中不要流于表面,更应该理解算法的意义与特点,而不是仅仅简单调用接口。这就是深度学习工程师与编程人员的区别了。
本系列教程包括三个部分:
- 环境准备
- TensorFlow使用指南
- Keras接口的使用
教程内容首发在我的知识星球:AI深度学习应用之路·几杯奶茶的价格学习掌握深度学习,欢迎点击访问。
1 环境准备
TensorFlow2.0正式版的安装可以参看笔者的详细安装教程:『TensorFlow2.0正式版』极简安装TF2.0正式版(CPU&GPU)教程,这里为了演示方便,只展示了TF2.0 CPU的安装。
我目前是在Windows10上面,使用conda管理的python环境,通过conda安装cuda与cudnn(GPU支持),通过pip安装的tensorflow2.0。经过尝试只是最简单地安装方式,无需配置复杂环境。
(关于ubuntu与mac版本的安装可以仿照此方法,因为conda支持多平台,应该没什么问题,如果大家问题多的话,可以评论,我后面会会更新ubuntu安装教程)
1.0 conda环境准备
conda是很好用python管理工具,可以方便建立管理多个python环境。后面安装的步骤里我也会介绍一些常用的conda指令。
conda 我推荐使用安装miniconda,大家可以理解为精简版的anaconda,只保留了一些必备的组件,所以安装会比快上很多,同时也能满足我们管理python环境的需求。(anaconda一般在固态硬盘安装需要占用几个G内存,花费1-2个小时,miniconda一般几百M,10分钟就可以安装完成了)
miniconda推荐使用清华源下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
选择适合自己的版本就可以,
- windows推荐地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.7.10-Windows-x86_64.exe
- ubuntu推荐地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.7.10-Linux-x86_64.sh
- Mac os推荐地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.7.10-MacOSX-x86_64.pkg
下以windows版本来安装miniconda作为演示,从上述下载合适版本,下载好后以管理员权限打开点击安装。
注意这两个都要勾选,一个是让我们可以直接在cmd使用conda指令,第二个是把miniconda自带的python3.7作为系统python。
安装好后就可以在cmd中使用conda指令了,cmd打开方式,windows键+R键,弹出输入框,输入cmd就进入了。也可以直接在windows搜索cmd点击运行。
下面介绍些cmd conda指令:
- 查看conda环境:conda env list
- 新建conda环境(env_name就是创建的环境名,可以自定义):conda create -n env_name
- 激活conda环境(ubuntu与Macos 将conda 替换为source):conda activate env_name
- 退出conda环境:conda deactivate
- 安装和卸载python包:conda install numpy # conda uninstall numpy
- 查看已安装python列表:conda list -n env_name
知道这些指令就可以开始使用conda新建一个环境安装TF2.0了。
1.1 TF2.0 CPU版本安装
TF CPU安装比较简单,因为不需要配置GPU,所以windows ubuntu macOS安装方式都类似,缺点就是运行速度慢,但是用于日常学习使用还是可以的。
下面以windows版本做演示:一下均在命令行操作
1.1.0 新建TF2.0 CPU环境(使用conda 新建环境指令 python=3.6表示在新建环境时同时python3.6)
conda create -n TF_2C python=3.6
当弹出 :Proceed ([y]/n)? 输入y回车
完成后就可以进入此环境
1.1.1 进入TF_2C环境
conda activate TF_2C
进入后我们就可以发现:(TF_2C)在之前路径前面,表示进入了这个环境。
1.1.2 安装TF2.0 CPU版本(后面的 -i 表示从国内清华源下载,速度比默认源快很多)
pip install tensorflow==2.0.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
如果网不好的,多执行几次。然后过一会就安装好啦。下面我们做下简单测试。
1.1.3 测试TF2.0 CPU版本(把下面代码保存到demo.py使用TF_2C python运行)
import tensorflow as tf
version = tf.__version__
gpu_ok = tf.test.is_gpu_available()
print("tf version:",version,"\nuse GPU",gpu_ok)
如果没有问题的话输出结果如下:可以看到tf 版本为2.0.0 因为是cpu版本,所以gpu 为False
tf version: 2.0.0
use GPU False
『TensorFlow2.0正式版』TF2.0+Keras速成教程·零:开篇简介与环境准备的更多相关文章
- 『王霸之路』从0.1到2.0一文看尽TensorFlow奋斗史
0 序篇 2015年11月,Google正式发布了Tensorflow的白皮书并开源TensorFlow 0.1 版本. 2017年02月,Tensorflow正式发布了1.0.0版本,同时也标志 ...
- Appium路线图及1.0正式版发布
Appium更新的速度极快,从我试用时候的0.12到1.0(0.18版本后就是1.0),完全符合移动互联网的节奏. 更新可能会慢,可以多试几次 整理了testerhome上思寒发表的帖子,让我们来看下 ...
- 『TensorFlow2.0正式版教程』极简安装TF2.0正式版(CPU&GPU)教程
0 前言 TensorFlow 2.0,今天凌晨,正式放出了2.0版本. 不少网友表示,TensorFlow 2.0比PyTorch更好用,已经准备全面转向这个新升级的深度学习框架了. 本篇文章就 ...
- VMware Workstation 10.0 正式版官方简体中文下载(附序列号)
虚拟机界数一数二的王者软件VMWare Workstation 今日推出了最新的VMware Workstation 10.0 版本.该版本最大的更新是加入了简体中文语言,这意味着未来神马汉化包.中文 ...
- Redis 3.0正式版发布,正式支持Redis集群
Redis是一个开源.基于C语言.基于内存亦可持久化的高性能NoSQL数据库,同时,它还提供了多种语言的API.近日,Redis 3.0在经过6个RC版本后,其正式版终于发布了.Redis 3.0的最 ...
- Axure 7.0 正式版 + 汉化包 安装
详情如下: Axure 7.0 正式版终于发布了,现在提供简体中文版给大家使用. Axure 7.0 正式版: 链接: http://pan.baidu.com/s/1kV4OJ47 提取密码: be ...
- 【Android】Vitamio 4.0 正式版发布/ Vitamio IOS 测试版发布(2013-07-16)
一.链接 Vitamio官网:http://www.vitamio.org/ 官网github地址:https://github.com/yixia 自己无法编译通过的这里下载: Vitamio 4. ...
- 【6年开源路】海王星给你好看!FineUI v4.0正式版暨《FineUI3to4一键升级工具》发布!
去年10-28号,我发布了一篇文章<海王星给你好看!FineUI v4.0公测版发布暨<你找BUG我送书>活动开始>,标志着FineUI开始向4.0版本迈进.经过4个月3个公测 ...
- [Android应用]《花界》V1.0 正式版隆重发布!
http://www.cnblogs.com/qianxudetianxia/archive/2012/04/05/2433669.html 1. 软件说明(1). 花界是一款看花软件:“看花,议花, ...
随机推荐
- Netty源码分析 (一)----- NioEventLoopGroup
提到Netty首当其冲被提起的肯定是支持它承受高并发的线程模型,说到线程模型就不得不提到NioEventLoopGroup这个线程池,接下来进入正题. 线程模型 首先来看一段Netty的使用示例 pa ...
- Python和Sublime安装教程
Python安装 安装python可以去https://www.python.org官网下载 点开官网后点击下图我圈出来的地方 然后翻到页面最后,选择要安装的版本 点击下载后打开,将 Add Pyt ...
- HDU- 6437.Videos 最“大”费用流 -化区间为点
参考和完全学习:http://www.cnblogs.com/xcantaloupe/p/9519617.html HDU-6437 题意: 有m场电影,电影分为两种,看一场电影可以得到对应的快乐值. ...
- CF - 1108 F MST Unification
题目传送门 题意:在一幅图中, 问需要使得多少条边加一,使得最小生成树只有一种方案. 题解:Kruskal, sort完之后,对于相通的一个边权w,我们可以分析出来有多少边是可以被放到图里面的,然后我 ...
- CodeForces round 520 div2
A:A Prank 题意:给定一个递增序列, 问最多能删除多少个连续数字,要求删除数字之后能还原成原来的数列. 题解:直接找就好了,为了方便可以使得第0个数字为0, 第n+1个元素为1001 代码: ...
- 51 nod 石子归并 + v2 + v3(区间dp,区间dp+平行四边形优化,GarsiaWachs算法)
题意:就是求石子归并. 题解:当范围在100左右是可以之间简单的区间dp,如果范围在1000左右就要考虑用平行四边形优化. 就是多加一个p[i][j]表示在i到j内的取最优解的位置k,注意能使用平行四 ...
- CSS特效集锦:视觉魔法的碰撞与融合(二)
引言 长久以来,我认识到.CSS,是存在极限的.正如曾经替你扛下一切的那个男人,也总有他眼含热泪地拼上一切,却也无法帮你做到的事情,他只能困窘地让你看到他的无能为力,怅然若失. 然后和曾经他成长的时代 ...
- AOE工程实践-NCNN组件
作者:杨科 NCNN是腾讯开源的一个为手机端极致优化的高性能神经网络前向计算框架.在AOE开源工程里,我们提供了NCNN组件,下面我们以SqueezeNet物体识别这个Sample为例,来讲一讲NCN ...
- Day004_Linux基础命令之特殊符号与正则表达式通配符
特殊符号: . 点 cd . 表示当前目录 ' '' 单引号,所见即所得 原封不动输出 " ""双引号,里面的特殊符号会被解析运行 `` ====$( ) 先运行() 里 ...
- Python作业本——前言
大四毕业了,9月才开始研究生生涯,导师也没有严格要求我暑假留校做项目,也没提具体的学习要求.这两三个月比较闲,所以就打算学学Python.学习过程中肯定会有些心得体会,以及一些小练习.学习编程不同于传 ...