记录用Anaconda搭建Tensorflow1.13环境

2023-11-01

上文才搭建好了Pytorch环境,这次获得了一篇论文源码,其中用到的是Tensorflow环境,为了复现论文结果,只好再搭建一个Tensorflow环境。

首先论文中给出的环境信息是,Tensorflow 1.13 以及 Python 3。这个提示太少了,以至于一不小心就会踩坑。

首先在Anaconda中创建了一个名为Tensorflow113_py36的新环境,从名字可以看出这个环境的Tensorflow版本以及python版本。


更新:如果电脑上已经安装好了Anaconda,安装Tensorflow只需要一条命令就解决

conda install tensorflow-gpu=1.13.1

注意别漏了后面的“-gpu”,不然就会安装成cpu版本。原文作者没说清是gpu还是cpu版本,但是从源码中看到使用到了GPU,因此安装gpu版。

有其他版本需求的,可以通过这条命令搜索所有支持一键安装的tensorflow-gpu版本

conda search tensorflow-gpu

执行后就会自动开始安装tensorflow-gpu以及所依赖的所有包,包括CUDA、cuDNN,不用额外操心。最后通过这篇博客中的方法测试即可:win10搭建tensorflow-gpu-1.13.1环境(含原生python和anaconda共存问题解决)亲测有效! | 码农家园

思考

Anaconda提供了一个完全隔离的环境,因此像下文这样哼哧哼哧往电脑环境里安装CUDA和cuDNN完全毫无意义,因为Anaconda里创建的隔离环境根本读取不到电脑里装的环境。这种教你往电脑本地装cuda和cudnn的方法也是网上大多数教学贴犯的经典错误,希望这种错误可以止于我的这篇文章。

会出现这种错误,归根结底是对Anaconda这种环境管理工具理解不深。有了Anaconda后,就不需要再往电脑里安装任何原生的python、cuda、pytorch等等乱七八糟的东西,一切都通过一条安装命令,安装到anaconda的隔离环境中即可,电脑系统清爽干净,只留一个Anaconda就可以。


(以下内容全部作废,以上面的正确做法为准)

1、下载Tensorflow

因为原作者对于python版本语焉不详,导致我踩到了第一个坑。我习惯性的用了python3.6版本,然后在使用pip install tensorflow-gpu==1.13.0命令时,开始报错

ERROR: Could not find a version that satisfies the requirement tensorflow-gpu==1.13.0

ERROR: No matching distribution found for tensorflow-gpu==1.13.0

然后后面还列举了一堆可供安装的tensorflow-gpu版本,都是从1.20版本开始往上,我不经怀疑难道服务器里已经下不到1.13版本的tensorflow了?在stackoverflow里也没有找到搜索结果,后来尝试把python版本提升到3.7以后,版本选择里才看到有1.13.0版本,真是稀奇。可以用这个pip命令查看某个包可供下载的全部版本信息。

pip install tensorflow-gpu==

"=="后面补全就是下载对应版本的包了。

另外注意,不要直接pip install tensorflow,这个下载的是用CPU训练的tensorflow。原文也没说清是tensorflow还是tensorflow-gpu,但是我看源码中用到了GPU,就猜测是下载tensorflow-gpu这个包。

2、下载CUDA

因为Pytorch里已经内置了CUDA,所以之前我并没有单独安装CUDA。这次为了Tensorflow训练,我需要单独下载一个CUDA包。CUDA版本和显卡驱动没有严格一一对应关系,显卡驱动越高越好,向下兼容CUDA版本。CUDA只是个工具包,一台电脑可以安装很多版本。

有的教程说可以用nvidia-smi命令或者在NVIDIA控制面板中查看自己电脑的CUDA版本,这个说法是不严谨的,这里显示的cuda版本只是【可安装的最大cuda版本】,不是电脑中【已安装的CUDA版本】。

通过查阅tensorflow支持的cuda版本的表格,得知我们tensorflow-gpu 1.13.0需要安装CUDA 10.0版本。对照表链接如下:

https://www.tensorflow.org/install/source_windows

CUDA 10.0的官方下载地址如下:

CUDA Toolkit 10.0 Download | NVIDIA Developer

安装时,会像驱动程序一样默认安装在C盘。如果想更改安装目录,选择“自定义”,然后更改安装目录,记得把不需要的勾勾去掉。

 进入cuda的bin目录下,在地址栏输入cmd,打开该目录下的命令提示行,输入

nvcc -V

 显示如下信息说明安装成功:

3、下载cuDNN

cuDNN是一个神经网络加速包,和CUDA版本需要对应。但是一个CUDA版本可能对应好多版本的cuDNN包,选择最新的即可。

cuDNN Archive | NVIDIA Developer(需登录nvidia账号才能下载)

我下载的是cuDNN v7.6.5,下载下来后是个zip压缩包。安装方式也很简单,解压缩后得到一个名为cuda的文件夹,把里面的文件夹(bin、include、lib)都复制到上面安装的cuda目录下,有覆盖提示就选是。(我第一次安装没有弹出重复文件需要替换的)

进入cuda中的extras\demo_suite目录下,在地址栏输入cmd,打开该目录下的命令提示行,输入bandwidthTest.exe和deviceQuery.exe检查是否安装成功:

两个都pass都即可说明安装成功。

4、测试

最后通过这篇文章提供的代码来测试CUDA和GPU是否可用:

win10搭建tensorflow-gpu-1.13.1环境(含原生python和anaconda共存问题解决)亲测有效! | 码农家园

更新:

似乎可以通过conda命令直接安装cuda和cuDNN,有待测试

conda install cudatoolkit=10.1
conda install cudnn=7.6.5
pip install tensorflow-gpu==2.3.0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

记录用Anaconda搭建Tensorflow1.13环境 的相关文章

  • 如何在刻度标签和轴之间添加空间

    我已成功增加刻度标签的字体 但现在它们距离轴太近了 我想在刻度标签和轴之间添加一点呼吸空间 如果您不想全局更改间距 通过编辑 rcParams 并且想要更简洁的方法 请尝试以下操作 ax tick params axis both whic
  • Python、Tkinter、更改标签颜色

    有没有一种简单的方法来更改按钮中文本的颜色 I use button text input text here 更改按下后按钮文本的内容 是否存在类似的颜色变化 button color red Use the foreground设置按钮
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • DreamPie 不适用于 Python 3.2

    我最喜欢的 Python shell 是DreamPie http dreampie sourceforge net 我想将它与 Python 3 2 一起使用 我使用了 添加解释器 DreamPie 应用程序并添加了 Python 3 2
  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • 如何使用包含代码的“asyncio.sleep()”进行单元测试?

    我在编写 asyncio sleep 包含的单元测试时遇到问题 我要等待实际的睡眠时间吗 I used freezegun到嘲笑时间 当我尝试使用普通可调用对象运行测试时 这个库非常有用 但我找不到运行包含 asyncio sleep 的测
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 如何使用装饰器禁用某些功能的中间件?

    我想模仿的行为csrf exempt see here https docs djangoproject com en 1 11 ref csrf django views decorators csrf csrf exempt and h
  • 需要 TensorFlow 依赖项。如何在 Windows 上运行 TensorFlow

    我有兴趣让 TensorFlow 在 Windows 上运行 但目前我意识到这是不可能的 因为某些依赖项无法在 Windows 上使用 例如巴泽尔 之所以出现这种需求 是因为据我目前了解 从 TensorFlow 访问 GPU 的唯一方法是
  • feedparser 在脚本运行期间失败,但无法在交互式 python 控制台中重现

    当我运行 eclipse 或在 iPython 中运行脚本时 它失败了 ascii codec can t decode byte 0xe2 in position 32 ordinal not in range 128 我不知道为什么 但
  • 在tensorflow.js中对张量进行分区、屏蔽或过滤

    我有 2 个相同长度的张量 data and groupIds 我想分开data通过相应的值分成几组groupId 例如 const data tf tensor 1 2 3 4 5 const groupIds tf tensor 0 1
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • Python - 在窗口最小化或隐藏时使用 pywinauto 控制窗口

    我正在尝试做的事情 我正在尝试使用 pywinauto 在 python 中创建一个脚本 以在后台自动安装 notepad 隐藏或最小化 notepad 只是一个示例 因为我将编辑它以与其他软件一起使用 Problem 问题是我想在安装程序
  • 为美国东部以外地区的 Cloudwatch 警报发送短信?

    AWS 似乎没有为美国东部以外的 SNS 主题订阅者提供 SMS 作为协议 我想连接我的 CloudWatch 警报并在发生故障时接收短信 但无法将其发送到 SMS YES 经过一番挖掘后 我能够让它发挥作用 它比仅仅选择一个主题或输入闹钟
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • 求求你们了,MyBatis 批量插入别再乱用 foreach 了,5000 条数据花了 14 分钟。。...

    近日 项目中有一个耗时较长的Job存在CPU占用过高的问题 经排查发现 主要时间消耗在往MyBatis中批量插入数据 mapper configuration是用foreach循环做的 差不多是这样 由于项目保密 以下代码均为自己手写的de
  • Windows获取CPU、内存和磁盘使用率脚本

    获取CPU使用率脚本 vbs 另存为cpu vbs On Error Resume Next Set objProc GetObject winmgmts root cimv2 win32 processor cpu0 Wscript Ec
  • C语言:输出1000~3000年中所有的闰年,每5年换一行

    C语言 输出1000 3000年中所有的闰年 每5年换一行 题目 分析 代码 题目 编写程序 输出1000 3000年中所有的闰年 每5年换一行 分析 判断闰年的条件为 能被4整除但不能被100整除 或者能被400整除 代码 include
  • 《Vision Transformers: State of the Art and Research Challenges》论文翻译阅读

    作者 Bo Kai Ruan Hong Han Shuai Wen Huang Cheng 概要 Transforme在自然语言处理中取得了巨大的成功 由于Transformer的自注意机制具有强大的能力 研究人员开发vision tran
  • C++ 聚合类(Aggregate Class)

    C 聚合类 Aggregate Class 文章目录 C 聚合类 Aggregate Class 概述 聚合类定义 聚合类的特性 value initialized 聚合类的初始化方法 union 聚合 总结 概述 该篇文章是用于梳理在学习
  • 安装mysql中遇到的错误:

    1 安装报错 Install Remove of the Service Denied 解决方案如下 2 安装报错 The service already exists 解决方案如下 3 安装报错 Can t create test fil
  • 真机上,微信小程序弹出层中使用textarea组件无法显示文本的问题

    真机上 微信小程序弹出层中使用textarea组件无法显示文本的问题 解决思路 文章链接 最近开发微信小程序发现了一个BUG 最后莫名奇妙地解决了 隐隐约约地感觉和微信小程序地textarea组件的z index层级有关 没有去深究其中原理
  • 【前端知识之Vue】diff算法流程

    前言 本系列主要整理前端面试中需要掌握的知识点 本节介绍diff算法流程以及相关例子 如果想看源码推荐YK菌的 Vue源码 图解 diff算法 与 虚拟DOM snabbdom 最小量更新原理解析 手写源码 updateChildren哦
  • IntelliJ IDEA-配置文件位置

    关于配置文件的位置 一旦开始使用IDEA之后 就需要做很多的配置相关工作 使得IDEA越来越符合你的个人习惯 让你使用起来得心应手 而这些配置信息 都保存在C盘 比如我的就会默认保存在如图所示的位置 C Documents and Sett
  • flutter loading前一个界面关闭后一个界面的loading

    import package flutter cupertino dart import package flutter material dart import package flutter easyloading flutter ea
  • H5 架构和原生架构的区别

    1 App 的 3 种开发方式 表面上看 手机 App 都是同样的东西 就是手机上的应用程序 点击图标就能运行 但是它们的底层技术不一样 按照开发技术 App 可以分成三大类 原生应用 简称 nativeApp Web 应用 简称 WebA
  • 阿里云轻量应用服务器mysql远程连接教程

    阿里云轻量应用服务器mysql远程连接教程 打开轻量应用服务器控制台 打开防火墙 点击添加规则 打开服务器命令行 可以使用Xshell等软件 在阿里云控制台开放3306端口后后在linux系统中也要开放3306端口 在服务器中开放防火墙33
  • esp32搭建lvgl

    platformio 下载两个库 TFT eSPI lv arduino 3 0 1对应lvgl 7 2 7 5对应lvgl6 pio libdeps tft espi user Setup h 驱动芯片选择 颜色顺序 分辨率选择 不同芯片
  • Nginx反向代理配置流式响应

    Nginx 是通过缓存响应内容来处理请求的 也就是说 当 Nginx 接收到完整的响应后 才会将其发送给客户端 所以默认不支持流式响应 这里讲讲 Nginx 反向代理中怎么配置流式响应 一 使用背景 最近使用 Egg js 搭建自动化部署服
  • MyEclipse提示过期,MyEclipse Subscription Expired解决方案

    一 错误描述 某一天打开MyEclipse 突然发现出现如下提示框 1 错误日志 Thank you for choosing MyEclipse Your license expired 1091 days ago To continue
  • @Valid和@Validated在service层的应用及问题汇总

    1 背景 实际开发中 很多时候要对参数校验 比如为空等 除了要在接口的入口处使用 很多普通方法也需要检查 比如service方法 那么如何在service上使用这个参数校验呢 2 使用方式 步骤一 在service接口上加上 Validat
  • [CF1149C](Tree Generator)

    题意 给出一颗树的括号序 有m个操作 每次交换两个括号 保证交换后括号序仍然合法 输出每次操作后 包括未操作时 树的直径 solution 首先转化题目 对于一棵树的括号序 我们找到一段子串 满足将其中匹配的括号消去后剩下的括号最多 那么剩
  • STM32 Flash操作(擦写)过程中器件复位导致数据丢失问题

    1 问题描述 产品在运行过程中需要保存一些断电不丢失的数据 为此将数据保存在STM32内部的flash中 但是测试人员在测试的过程中 修改了数据参数 直接断电重启机器 并没有等待flash的操作时间 导致原有的数据丢失 2 原理分析 本产品
  • 理解准确率(accuracy)、精度(precision)、查全率(recall)、F1

    Precision又叫查准率 Recall又叫查全率 这两个指标共同衡量才能评价模型输出结果 TP TN FP FN的定义 在二分类问题中 Real 1 Real 0 Predict 1 TP FP Predict 0 FN TN TP 预
  • 记录用Anaconda搭建Tensorflow1.13环境

    上文才搭建好了Pytorch环境 这次获得了一篇论文源码 其中用到的是Tensorflow环境 为了复现论文结果 只好再搭建一个Tensorflow环境 首先论文中给出的环境信息是 Tensorflow 1 13 以及 Python 3 这