目前考虑进入梦寐以求的 机器学习、人工智能 等领域的学习,因此安装主流的机器学习框架 Tensorflow 迫在眉睫。
然而网上的安装教程大多是1.xx 版本的。
笔者目前安装的环境是 win10,Python版本是 3.8。
最近在安装Tensorflow最新版2.4.1时,参考了不少大佬博客,也遇到不少问题,因此借此机会,更新下最新的安装教程。
参考了许多许多博客
捂脸哭o(╥﹏╥)o
必须要感谢 csdn 知乎… 各位大神的文章
任何曾经试图在 Python 中只利用 NumPy 编写神经网络代码的人都知道那是多么麻烦。
编写一个简单的一层前馈网络的代码尚且需要 40 多行代码,当增加层数时,编写代码将会更加困难,执行时间也会更长。
TensorFlow 使这一切变得更加简单快捷,从而缩短了想法到部署之间的实现时间。
TensorFlow 是由 Google Brain 团队为深度神经网络(DNN)开发的功能强大的开源软件库,于 2015 年 11 月首次发布,在 Apache 2.x 协议许可下可用。
截至今天,短短的两年内,其 GitHub 库大约 845 个贡献者共提交超过17000 次,这本身就是衡量 TensorFlow 流行度和性能的一个指标。
下图列出了当前流行的深度学习框架,从中能够清楚地看到 TensorFlow 的领先地位:
Anaconda在英文中是“蟒蛇”,麻辣鸡(Nicki Minaj妮琪·米娜)有首歌就叫《Anaconda》,表示像蟒蛇一样性感妖娆的身体。
Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。
------ 百度百科
Tensorflow是属于很高层的应用。高层应用的一个比较大的麻烦就是需要依赖的底层的东西很多,如果底层依赖没有弄好的话,高层应用是没法玩转的。
在极客学院有关Tensorflow的教程中,提到了这样几种安装方式:Pip, Docker, Virtualenv, Anaconda 或 源码编译的方法安装 TensorFlow。
在这里,我强烈推荐大家使用Anaconda的方式安装!因为采用这种方式安装的时候,相当于将所有的底层依赖细节全部已经打包给封装好了!并且,Anaconda还能创建自己的计算环境,相当于将tensorflow的环境与其他环境做了隔离,这样你就可以将tensorflow随便玩,爱怎么玩怎么玩,也不用担心破坏之前的环境!
如果是玩数据玩ML的同学,如果你还不知道Anaconda,你就out啦!Anaconda是一个基于python的科学计算平台,这个平台里包含有python,r,scala等绝大部分主流的用于科学计算的包。
1)Anaconda 附带了一大批常用数据科学包,它附带了 conda、Python 和 150 多个科学包及其依赖项。因此你可以立即开始处理数据。
2)管理包
Anaconda 是在 conda(一个包管理器和环境管理器)上发展出来的。在数据分析中,你会用到很多第三方的包,而conda(包管理器)可以很好的帮助你在计算机上安装和管理这些包,包括安装、卸载和更新包。
3)管理环境
为什么需要管理环境呢?
比如你在A项目中用了 Python 2,而新的项目B老大要求使用Python 3,而同时安装两个Python版本可能会造成许多混乱和错误。这时候 conda就可以帮助你为不同的项目建立不同的运行环境。
还有很多项目使用的包版本不同,比如不同的pandas版本,不可能同时安装两个 Numpy 版本,你要做的应该是,为每个 Numpy 版本创建一个环境,然后项目的对应环境中工作。这时候conda就可以帮你做到。
Anaconda 优点?
Anaconda的优点总结起来就八个字:省时省心、分析利器。 省时省心:
Anaconda通过管理工具包、开发环境、Python版本,大大简化了你的工作流程。不仅可以方便地安装、更新、卸载工具包,而且安装时能自动安装相应的依赖包,同时还能使用不同的虚拟环境隔离不同要求的项目。
官网下载地址:Link
安装完成Anaconda,进行环境变量的测试
conda --version
conda info --envs
我们可以通过下面的命令来查看Anaconda已经安装了哪些包。
运行 开始菜单 -> Anaconda3 -> Anaconda Prompt
在Anaconda Prompt 命令界面输入:
conda list
可以看到已经安装了numpy、sympy等常用的包。
恭喜你完成第一步
TensorFlow 安装的前提是系统安装了 Python 2.5 或更高版本,教程中的例子是以 Python 3.8(Anaconda 3版)为基础设计的。
为了安装 TensorFlow,首先确保你已经安装了Anaconda。
可以从网址(https://www.continuum.io/downloads)中下载并安装适用于Windows/macOS 或 Linux 的 Anaconda。
安装了 Anaconda,下一步决定是否安装 TensorFlow CPU 版本或 GPU 版本。
几乎所有计算机都支持 TensorFlow CPU 版本,而 GPU 版本则要求计算机有一个 CUDA compute capability 3.0 及以上的 NVDIA GPU 显卡(对于台式机而言最低配置为 NVDIA GTX 650)。
中央处理器(CPU)由对顺序串行处理优化的内核(4~8个)组成。
图形处理器(GPU)具有大规模并行架构,由数千个更小且更有效的核芯(大致以千计)组成,能够同时处理多个任务。
对于 TensorFlow GPU 版本,需要先安装 CUDA toolkit 7.0 及以上版本、NVDIA【R】驱动程序和 cuDNN v3 或以上版本。Windows 系统还另外需要一些 DLL 文件,读者可以下载所需的 DLL 文件或安装 Visual Studio C++。
还有一件事要记住,cuDNN 文件需安装在不同的目录中,并需要确保目录在系统路径中。当然也可以将 CUDA 库中的相关文件复制到相应的文件夹中。
内容来源: Link
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
附(可以忽略以下内容):
Python默认的pip包来源是国外的Pypi服务站点:https://pypi.python.org/simple。
对于国内用户来说,由于网络原因,下载速度太慢,因此推荐使用国内镜像源站点。
目前,比较常用的pip镜像站点有:
1)清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
2)中国科大:https://mirrors.ustc.edu.cn/pypi/web/simple/
3)豆瓣:http://pypi.doubanio.com/simple/
4)阿里云:http://mirrors.aliyun.com/pypi/simple/
方式一:直接在 pip install xxx 后加上镜像源地址。
例如:下载numpy包:
pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/
但是利用这种方式,每次下载python包,都需要在后面加上镜像源地址,操作繁琐,不建议。
方式二:修改配置文件
目前,在windows系统上使用python安装包安装时,都会自带安装pip软件,此时可以通过下述方式修改pip的配置文件。
首先在
C:\Users\×××
目录中创建名为pip的文件夹(×××为用户名),然后在里面创建名为pip.ini
的文件,最后在该文件中添加以下内容,保存即可。
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
timeout = 6000
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
disable-pip-version-check = true
说明:请注意,该方式不适合于linux系统和MacOS。
conda create -n tensorflow python=3.8
其中(环境名称,可以随意设置)
运行 开始菜单->Anaconda3—>Anaconda Navigator
点击Navigator左侧的 Environments,可以看到tensorflow的环境已经创建好了。
在Anaconda Prompt中启动tensorflow环境
格式:activate 虚拟环境名
activate tensorflow
注:当不使用tensorflow时,关闭tensorflow环境,命令为:deactivate 虚拟环境名
安装cpu版本的TensorFlow
用pip命令安装。这里高潮 (climax)来了,官方还有网上各种命令层出不穷,让人眼花缭乱。
下面先列举几个常见的命令方式,声明以下几条命令都能安装成功,但是能不能用就不一定了。
1.pip install tensorflow # 最新的稳定发行版本,2.0×后默认是CPU和GPU版本在一起,1.×只表示CPU版本
2.pip install tensorflow-gpu # 1.×的GPU版本
3.pip install tensorflow==1.15 # 1.×的最后一个更新版本
这里的安装步骤是我copy前辈的文章,我之前直接用的这条安装命令 pip install tensorflow,但是最后使用时,它提示我没有CUDA之类的东西,我查看安装的包时,发现tensorflow-cpu与tensorflow-gpu都安装上,看完这篇博客后,才知道gpu也捆绑安装了,运行代码时,总是报红提示我缺少 “动态链接”等,好像使用GPU时需要安装 cuda8+cudnn5等,比较麻烦,小白的我未尝试。
运行结果。大致意思是,我的显卡支持GPU版本,所以提示我找不到一些库,如果想用gpu版本,请安装这些库,并且最后正确输出了Tensorflow的版本是1.15,无法使用gpu。虽然程序正常运行结束,但是明显基于计算机的硬件,官方还是强推了gpu版本,输出了一大堆的提示来安利你。可是,我明明只是想用cpu版本的,不想要推荐,这些输出报错不想看到。如果你不介意,当然也可以凑活着这么用。
上面说了这么多,如何才能安装简洁的tensorflow?
利用下面的命令安装,强制安装CPU版本。
pip install tensorflow-cpu
最后 完美的安装了最新的tensorflow 2.4.1 cpu版本。
注:这里没有介绍GPU版本的安装方法,GPU版本需要安装cuda8+cudnn5,如果需要 请搜索其他博文。
注意:一定要在 刚刚创建的tensorflow的环境下安装!
在tensorflow命令行中:输入python便是进入python环境
测试代码
import tensorflow as tf
#查看tensorflow版本
print(tf.__version__)
习惯使用PyCharm来开发,而 Anaconda 集成了python开发环境,因此我们可以修改Project的python编译环境,从而更方便使用tensorflow框架。
配置如下:
import tensorflow as tf
#查看tensorflow版本
print(tf.__version__)
这种方式的好处:不用每次都 开启、关闭环境了。
import tensorflow as tf
#创建一个Tensor字符串常量
hello = tf.constant("hello world ")
print(hello)
tf.Tensor(b'hello world', shape=(), dtype=string)
#调用numpy(),来访问一个Tensor(张量)值
print(hello.numpy())
运行结果如下: b’hello world’
本程序原期望的运行结果为:hello world
而实际运行结果为:b’hello world’
在网上查阅后:
b 前缀的字符串为bytes类型的字符串
Python语言中有两种不同的字符串
一个用于存储文本(unicode类型文本字符串 u’hello world’ ),一个用于存储原始字节(byte类型字节字符串 b’hello world’ )
在python3中,str 变量默认采用unicode类型,因而省略了u 前缀
字节型字符串和文本型字符串之间可以通过编码 encode() 和 解码 decode() 相互转换。
#调用decode()解码,默认为utf-8解码
print(hello.numpy().decode())
运行结果:
hello
具体请参考博客 Link
测试代码:
import tensorflow as tf
def add_demo():
# 计算两个变量的和
# 回顾原生的python计算
a = 10
b = 20
c = a + b
print('原生python计算', c)
# tensorflow 获取变量值,与 python不同
a_t = tf.constant(10)
b_t = tf.constant(20)
print('a_t', a_t)
c_t = a_t + b_t
print('tensorflow计算两数的和:', c_t)
# 开启会话
with tf.Session() as sess:
c_t_value = sess.run(c_t)
print('c_t_value:', c_t_value)
if __name__ == '__main__':
add_demo()
错误的意思是tensortflow模块没有Session属性,后来查阅资料发现,tensorflow2.0版本中的确没有Session这个属性
如果安装的是 tensorflow2.0 版本又想利用Session属性 请参考博客: Link
兼容2.0与1.0版本,需更改import语句:
import tensorflow.compat.v1 as tf
安装一个框架,我觉得好难啊 (可能是我太笨 太low)
o(╥﹏╥)o
截止到这里小白的我 花了很长时间,看了许多大佬的博客,资源等,真心的感谢他们,向优秀的人的致敬!
希望我可以越走越远,加油!
“欢迎登陆官网(附 https://tensorflow.google.cn/)了解更多 TensorFlow 内容,也可关注 TensorFlow 官方公众号获取更多资讯。”
参考博客
Link
Link
Link