TensorFlow2.0安装_tensorflow中run

2022-09-27 11:16:22 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

前言

目前考虑进入梦寐以求的 机器学习人工智能 等领域的学习,因此安装主流的机器学习框架 Tensorflow 迫在眉睫。

然而网上的安装教程大多是1.xx 版本的。

笔者目前安装的环境win10Python版本是 3.8

最近在安装Tensorflow最新版2.4.1时,参考了不少大佬博客,也遇到不少问题,因此借此机会,更新下最新的安装教程

参考了许多许多博客 捂脸哭o(╥﹏╥)o

必须要感谢 csdn 知乎… 各位大神的文章

Tensorflow 简介

任何曾经试图在 Python 中只利用 NumPy 编写神经网络代码的人都知道那是多么麻烦。 编写一个简单的一层前馈网络的代码尚且需要 40 多行代码,当增加层数时,编写代码将会更加困难,执行时间也会更长。 TensorFlow 使这一切变得更加简单快捷,从而缩短了想法到部署之间的实现时间。 TensorFlow 是由 Google Brain 团队为深度神经网络(DNN)开发的功能强大的开源软件库,于 2015 年 11 月首次发布,在 Apache 2.x 协议许可下可用。 截至今天,短短的两年内,其 GitHub 库大约 845 个贡献者共提交超过17000 次,这本身就是衡量 TensorFlow 流行度和性能的一个指标。

下图列出了当前流行的深度学习框架,从中能够清楚地看到 TensorFlow 的领先地位:

Anaconda 简介

  • what’s Anaconda?

Anaconda在英文中是“蟒蛇”,麻辣鸡(Nicki Minaj妮琪·米娜)有首歌就叫《Anaconda》,表示像蟒蛇一样性感妖娆的身体。 Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。 —— 百度百科

  • 为什么需要先安装Anaconda?

Tensorflow是属于很高层的应用。高层应用的一个比较大的麻烦就是需要依赖的底层的东西很多,如果底层依赖没有弄好的话,高层应用是没法玩转的。 在极客学院有关Tensorflow的教程中,提到了这样几种安装方式:Pip, Docker, Virtualenv, Anaconda 或 源码编译的方法安装 TensorFlow。 在这里,我强烈推荐大家使用Anaconda的方式安装!因为采用这种方式安装的时候,相当于将所有的底层依赖细节全部已经打包给封装好了!并且,Anaconda还能创建自己的计算环境,相当于将tensorflow的环境与其他环境做了隔离,这样你就可以将tensorflow随便玩,爱怎么玩怎么玩,也不用担心破坏之前的环境! 如果是玩数据玩ML的同学,如果你还不知道Anaconda,你就out啦!Anaconda是一个基于python的科学计算平台,这个平台里包含有python,r,scala等绝大部分主流的用于科学计算的包。

  • 你可能已经安装了 Python,那么为什么还需要 Anaconda?

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版本,大大简化了你的工作流程。不仅可以方便地安装、更新、卸载工具包,而且安装时能自动安装相应的依赖包,同时还能使用不同的虚拟环境隔离不同要求的项目。

Anaconda 安装

官网下载地址:Link

  • Products — Individual Edition 选择产品中的个人发行版
  • 点击Download跳转到最下面,下载相应的版本(目前大多都是64位电脑)

该官网下载文件速度还是很快的

  • 下载完成后点击安装
  • 就和安装普通的软件一样,全部选择默认即可,注意勾选将 python3.8 添加进环境变量
  • 在非C盘创建一个新的目录
  • 这里可以将第一个对勾打上(Add … to my Path),这样就不用配置环境变量,直接Install
  • 若上面未勾选第一个选项,则需要手动配置环境变量

安装成功后,开始菜单会多出Anaconda3相关组件

安装完成Anaconda,进行环境变量的测试

  • 进入cmd命令窗口
  1. 验证Anaconda环境是否安装成功conda --version
  1. 检测目前安装了哪些环境变量conda info --envs

这样就安装成功了

我们可以通过下面的命令来查看Anaconda已经安装了哪些包。

运行 开始菜单 -> Anaconda3 -> Anaconda Prompt

在Anaconda Prompt 命令界面输入: conda list

可以看到已经安装了numpysympy等常用的包。

恭喜你完成第一步

TensorFlow CPU & GPU

  • 前提

TensorFlow 安装的前提是系统安装了 Python 2.5 或更高版本,教程中的例子是以 Python 3.8(Anaconda 3版)为基础设计的。 为了安装 TensorFlow,首先确保你已经安装了Anaconda。 可以从网址(https://www.continuum.io/downloads)中下载并安装适用于Windows/macOS 或 Linux 的 Anaconda。

  • what’s CPU & GPU?

安装了 Anaconda,下一步决定是否安装 TensorFlow CPU 版本或 GPU 版本。 几乎所有计算机都支持 TensorFlow CPU 版本,而 GPU 版本则要求计算机有一个 CUDA compute capability 3.0 及以上的 NVDIA GPU 显卡(对于台式机而言最低配置为 NVDIA GTX 650)。

  • CPU 与 GPU 的对比

中央处理器(CPU)由对顺序串行处理优化的内核(4~8个)组成。 图形处理器(GPU)具有大规模并行架构,由数千个更小且更有效的核芯(大致以千计)组成,能够同时处理多个任务。 对于 TensorFlow GPU 版本,需要先安装 CUDA toolkit 7.0 及以上版本、NVDIA【R】驱动程序和 cuDNN v3 或以上版本。Windows 系统还另外需要一些 DLL 文件,读者可以下载所需的 DLL 文件或安装 Visual Studio C 。 还有一件事要记住,cuDNN 文件需安装在不同的目录中,并需要确保目录在系统路径中。当然也可以将 CUDA 库中的相关文件复制到相应的文件夹中。

内容来源: Link

Tensorflow 安装

  1. 打开Anaconda Prompt,输入清华仓库镜像,这样更新会快一些:

输入命令:

代码语言:javascript复制
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/

  • pip使用国内镜像站点

方式一:直接在 pip install xxx 后加上镜像源地址。

例如:下载numpy包:

代码语言:javascript复制
 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。

  1. 创建虚拟环境
  • 同样在Anaconda Prompt中利用Anaconda创建一个python3.8的环境,环境名称为tensorflow ,输入下面命令:
代码语言:javascript复制
conda create -n tensorflow python=3.8

其中(环境名称,可以随意设置)

运行 开始菜单->Anaconda3—>Anaconda Navigator 点击Navigator左侧的 Environments,可以看到tensorflow的环境已经创建好了。

  1. 在Anaconda Prompt中启动tensorflow环境 格式:activate 虚拟环境名 activate tensorflow

注:当不使用tensorflow时,关闭tensorflow环境,命令为:deactivate 虚拟环境名

  1. 安装cpu版本的TensorFlow

用pip命令安装。这里高潮 (climax)来了,官方还有网上各种命令层出不穷,让人眼花缭乱。 下面先列举几个常见的命令方式,声明以下几条命令都能安装成功,但是能不能用就不一定了。

代码语言:javascript复制
1.pip install tensorflow  # 最新的稳定发行版本,2.0×后默认是CPU和GPU版本在一起,1.×只表示CPU版本
2.pip install tensorflow-gpu  # 1.×的GPU版本
3.pip install tensorflow==1.15  # 1.×的最后一个更新版本
  • 第一个指令:什么叫CPU和GPU版本在一起?我理解的意思就是,CPU和GPU一家亲,不搞什么分裂,一条安装命令搞定就可以了嘛,至于怎么选择,看你机器的显卡支不支持CUDA了。 因此,对于显卡支持gpu版本,而又只想用cpu版本练手的小伙伴来说,就不要用第一条命令进行安装,要不然在导包的时候就会有一大堆错误,缺这个少那个,基本是由显卡驱动程序版本、CUDA版本、CUDDN版本等问题引起的。如果不想安装gpu版本,何必自找麻烦呢。

这里的安装步骤是我copy前辈的文章,我之前直接用的这条安装命令 pip install tensorflow,但是最后使用时,它提示我没有CUDA之类的东西,我查看安装的包时,发现tensorflow-cpu与tensorflow-gpu都安装上,看完这篇博客后,才知道gpu也捆绑安装了,运行代码时,总是报红提示我缺少 “动态链接”等,好像使用GPU时需要安装 cuda8 cudnn5等,比较麻烦,小白的我未尝试。

  • 第二个指令:安装1.×的GPU版本,我们不涉及,请忽略。
  • 第三个指令:按照对于1.x 版本,tensorflow默认是CPU版本的逻辑。这个确实没问题,安装成功后能用,诚不欺我。虽然能运行成功,但是总是输出一些异常。

运行结果。大致意思是,我的显卡支持GPU版本,所以提示我找不到一些库,如果想用gpu版本,请安装这些库,并且最后正确输出了Tensorflow的版本是1.15,无法使用gpu。虽然程序正常运行结束,但是明显基于计算机的硬件,官方还是强推了gpu版本,输出了一大堆的提示来安利你。可是,我明明只是想用cpu版本的,不想要推荐,这些输出报错不想看到。如果你不介意,当然也可以凑活着这么用。

上面说了这么多,如何才能安装简洁的tensorflow?

利用下面的命令安装,强制安装CPU版本。

pip install tensorflow-cpu

最后 完美的安装了最新的tensorflow 2.4.1 cpu版本。

注:这里没有介绍GPU版本的安装方法,GPU版本需要安装cuda8 cudnn5,如果需要 请搜索其他博文。

注意:一定要在 刚刚创建的tensorflow的环境下安装!

  1. 测试tensorflowAnaconda Prompt 中启动tensorflow环境,并进入python环境。

tensorflow命令行中:输入python便是进入python环境

测试代码

代码语言:javascript复制
import tensorflow as tf
#查看tensorflow版本
print(tf.__version__)

如图所示 恭喜你安装成功 ヾ(◍°∇°◍)ノ゙

Pycharm &Tensorflow

习惯使用PyCharm来开发,而 Anaconda 集成了python开发环境,因此我们可以修改Projectpython编译环境,从而更方便使用tensorflow框架。

配置如下

  • 新建Project
  • File-Setting–Project Interpreter选择tensorflow下的Python解释器

部署完便可跑一个 HelloWorld

代码语言:javascript复制
import tensorflow as tf
#查看tensorflow版本
print(tf.__version__)

这种方式的好处:不用每次都 开启、关闭环境了。

Tensorflow & Hello world

Hello world

  • 安装成功后试一下 Hello world,参考网上的代码
代码语言:javascript复制
import tensorflow as tf

#创建一个Tensor字符串常量
hello = tf.constant("hello world ")
print(hello)
  • 运行结果如下

tf.Tensor(b'hello world', shape=(), dtype=string)

  • 访问hello中的字符串,我们需要用到 numpy()
代码语言:javascript复制
#调用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() 相互转换。

代码语言:javascript复制
#调用decode()解码,默认为utf-8解码
print(hello.numpy().decode())

运行结果: hello

具体请参考博客 Link

Session()

测试代码:

代码语言:javascript复制
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

截止到这里小白的我 花了很长时间,看了许多大佬的博客,资源等,真心的感谢他们,向优秀的人的致敬!

希望我可以越走越远,加油!

参考博客

Link Link Link

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/175486.html原文链接:https://javaforall.cn

0 人点赞