记深度学习框架安装血泪史

2023-10-30

1、pytorch

OS:ubuntu16.04
gpu: GTX 1080Ti
cuda: 9.0 (系统预装+cudnn)

pytorch官网:https://pytorch.org/
官网给出的安装命令是:conda install pytorch torchvision cudatoolkit=9.0 -c pytorch

(此处有个小说明,由于系统预装了cuda和cudnn,看网上的教程还需要conda安装cudatoolkit和cudnn,一直没搞清楚conda环境安装的这个和系统安装的这个区别,然后我以为要先conda安装cudatoolkit9.0, 然后再配对官网的cudatoolkit9.0的安装命令,但是!!!!!在不小心安装了cudatoolkit8.0后,使用官网对应9.0的安装命令,发现它先把我conda安装的cudatookit8.0卸载了,自动匹配安装了cudatookit9.0。这里告诉我们,同志们,信官方说明吧,别整的有的没的,人家说了 Anaconda is our recommended package manager since it installs all dependencies。当然也就是说 不需要你自己安装cuda和cudnn了!)

但是在安装过程中发现,官网给出的命令安装很慢,甚至断掉!
解决办法在这儿
添加清华镜像:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

# for legacy win-64
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/

然后将官网命令改成:

conda install pytorch torchvision cudatoolkit=9.0
conda install pytorch torchvision  -i https://pypi.tuna.tsinghua.edu.cn/simple # 指定清华源

由于官网给出的命令中 -c pytorch 参数指定了conda获取pytorch的channel为conda自带的pytorch仓库。

因此,只需要将-c pytorch语句去掉,就可以使用清华镜像源快速安装pytorch了。

pytorch安装成功测试

PyTorch下 CUDA 和 CuDNN 安装验证程序
查看gpu版本和cuda的对应关系

在这里插入图片描述

查看pytorch版本

import torch
print(torch.__version__)
# 查看cuda是否可用
print(torch.cuda.is_available())

pytorch指定版本安装/pytorch降级

之前安装的pytorch版本是1.0,但由于某个项目用到了 torchvision.transforms.ColorJitter需要使用pytorch0.3,需要对pytorch进行降级。

conda install pytorch=0.1 -c soumith

另外使用的是torchvision0.1,需要使用torchvision0.2,参考这里

参考:
[1] conda/pip降级pytorch版本的方法以及安装指定pytorch的方法
[2] pytorch不同版本安装以及版本查看
[3] Pytorch 安装与版本查看

2、caffe

基于Anaconda安装

假如你需要用到python接口,加入你恰好用的是Anaconda,那么恭喜你,因为这个安装同样很简单,感谢万能的conda!

参考博文在这里

首先你需要创建一个虚拟环境:

conda create -n caffe python=2.7 -c defaults

这里用-c default 表示使用默认的channel安装,据说是为了防止依赖库channel不一致产生问题。(表示试验过不加,确实产生了undefined symbol的不问题,不确定是否是因为之前自己安装了其他依赖项。但是用默认的channel安装,真的!很慢!!可以尝试一下一创建完虚拟环境,不要自己安装任何依赖项,直接安装caffe。)

然后安装caffe

source activate caffe
gpu版:conda install -c defaults caffe-gpu
cpu版:conda install -c defaults caffe

查看caffe是否安装成功

import caffe
print(dir(caffe))

编译python接口

如果你想自己安装caffe,并且编译python接口。。。。

(表示caffe预安装好了,这里说一下编译python接口的一些问题)

首先需要安装一些依赖,requirements.txt文件已经给出,我们用conda安装:

conda install --yes --file requirements.txt

注意用这种方法安装,如果某个依赖安装失败,会导致所有依赖都安装失败。
我们可以采用下面这个方法:

while read requirement; do conda install --yes $requirement; done < requirements.txt

后记:关于Anaconda安装tensorflow、caffe、opencv

参考博文"ananconda 安装tensorflow-gpu caffe-gpu opencv等简单的方法"。

具体可以通过登陆https://anaconda.org/查看安装的相关命令。

另外 pytorch现在自带caffe2了吗?(表示用conda 安装完pytorch发现可以import caffe2了。。。)

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

记深度学习框架安装血泪史 的相关文章

  • django_openid_auth TypeError openid.yadis.manager.YadisServiceManager 对象不是 JSON 可序列化

    I used django openid auth在我的项目上 一段时间以来它运行得很好 但今天 我测试了该应用程序并遇到了这个异常 Environment Request Method GET Request URL http local
  • Python - 将宽字符字符串从二进制文件转换为 Python unicode 字符串

    这是漫长的一天 我有点困惑 我正在读取一个包含大量宽字符字符串的二进制文件 我想将它们转储为 Python unicode 字符串 为了解压非字符串数据 我使用 struct 模块 但我不知道如何对字符串执行相同的操作 例如 阅读 系列 一
  • 使用 python 进行串行数据记录

    Intro 我需要编写一个小程序来实时读取串行数据并将其写入文本文件 我在读取数据方面取得了一些进展 但尚未成功地将这些信息存储在新文件中 这是我的代码 from future import print function import se
  • python 模拟第三方模块

    我正在尝试测试一些处理推文的类 我使用 Sixohsix twitter 来处理 Twitter API 我有一个类充当 Twitter 类的外观 我的想法是模拟实际的 Sixohsix 类 通过随机生成新推文或从数据库检索它们来模拟推文的
  • Python逻辑运算符优先级[重复]

    这个问题在这里已经有答案了 哪个运算符优先4 gt 5 or 3 lt 4 and 9 gt 8 这会被评估为真还是假 我知道该声明3 gt 4 or 2 lt 3 and 9 gt 10 显然应该评估为 false 但我不太确定 pyth
  • 如何创建一个语句来打印以特定单词开头的单词? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何在 python 中打印从特定字母开始的单词 而不使用函数 而是使用方法或循环 1 我有一个字符串 想要打印以 m 开头的单词 S
  • python suds SOAP 请求中的名称空间前缀错误

    我使用 python suds 来实现客户端 并且在发送的 SOAP 标头中得到了错误的命名空间前缀 用于定义由element ref 在 wsdl 中 wsdl 正在引用数据类型 xsd 文件 请参见下文 问题出在函数上GetRecord
  • 使用 OLS 回归预测未来值(Python、StatsModels、Pandas)

    我目前正在尝试在 Python 中实现 MLR 但不确定如何将我找到的系数应用于未来值 import pandas as pd import statsmodels formula api as sm import statsmodels
  • Python urllib.request.urlopen:AttributeError:'bytes'对象没有属性'data'

    我正在使用 Python 3 并尝试连接到dstk 我收到错误urllib包裹 我对SO进行了很多研究 但找不到与这个问题类似的东西 api url self api base street2coordinates api body jso
  • 从 python 发起 SSH 隧道时出现问题

    目标是在卫星服务器和集中式注册数据库之间建立 n 个 ssh 隧道 我已经在我的服务器之间设置了公钥身份验证 因此它们只需直接登录而无需密码提示 怎么办 我试过帕拉米科 它看起来不错 但仅仅建立一个基本的隧道就变得相当复杂 尽管代码示例将受
  • 使用鼻子获取设置中当前测试的名称

    我目前正在使用鼻子编写一些功能测试 我正在测试的库操作目录结构 为了获得可重现的结果 我存储了一个测试目录结构的模板 并在执行测试之前创建该模板的副本 我在测试中执行此操作 setup功能 这确保了我在测试开始时始终具有明确定义的状态 现在
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • Seaborn Pairplot 图例不显示颜色

    我一直在学习如何在Python中使用seaborn和pairplot 这里的一切似乎都工作正常 但由于某种原因 图例不会显示相关的颜色 我无法找到解决方案 因此如果有人有任何建议 请告诉我 x sns pairplot stats2 hue
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • 将 2D NumPy 数组按元素相乘并求和

    我想知道是否有一种更快的方法 专用 NumPy 函数来执行 2D NumPy 数组的元素乘法 然后对所有元素求和 我目前使用np sum np multiply A B 其中 A B 是相同维度的 NumPy 数组m x n 您可以使用np
  • 默认情况下,Keras 自定义层参数是不可训练的吗?

    我在 Keras 中构建了一个简单的自定义层 并惊讶地发现参数默认情况下未设置为可训练 我可以通过显式设置可训练属性来使其工作 我无法通过查看文档或代码来解释为什么会这样 这是应该的样子还是我做错了什么导致默认情况下参数不可训练 代码 im
  • 您可以将操作直接应用于map/reduce/filter 中的参数吗?

    map and filter通常可以与列表理解互换 但是reduce并不那么容易被交换map and filter 此外 在某些情况下我仍然更喜欢函数语法 但是 当您需要对参数本身进行操作时 我发现自己正在经历语法体操 最终必须编写整个函数
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break
  • Elastic Beanstalk 中的 enum34 问题

    我正在尝试在 Elastic Beanstalk 中设置 django 环境 当我尝试通过requirements txt 文件安装时 我遇到了python3 6 问题 File opt python run venv bin pip li
  • Scrapy Spider不存储状态(持久状态)

    您好 有一个基本的蜘蛛 可以运行以获取给定域上的所有链接 我想确保它保持其状态 以便它可以从离开的位置恢复 我已按照给定的网址进行操作http doc scrapy org en latest topics jobs html http d

随机推荐

  • Python编程:实现整数反转(含完整源代码)

    Python编程 实现整数反转 含完整源代码 在Python中 实现整数反转非常简单 我们只需要将整数转换为字符串 然后对字符串进行反转操作 最后再将反转后的字符串转换回整数即可完成整数反转 下面是实现整数反转的Python源代码 def
  • 深入浅出--梯度下降法及其实现

    转自 https www jianshu com p c7e642877b0e 深入浅出 梯度下降法及其实现 六尺帐篷 关注 2018 01 17 21 06 字数 3001 阅读 1210 评论 2 喜欢 23 赞赏 1 梯度下降的场景假
  • 常用文件的文件头(十六进制)

    JPEG jpg 文件头 FFD8FF PNG png 文件头 89504E47 GIF gif 文件头 47494638 TIFF tif 文件头 49492A00 Windows Bitmap bmp 文件头 424D CAD dwg
  • 嘀嗒出行再闯IPO:千军万马我无懈

    羽扇纶巾笑谈间 千军万马我无懈 在激烈竞争中再度冲刺港交所IPO的嘀嗒出行 闪露出一丝歌词里的气魄 交通运输部下属网约车监管信息交互系统的数据显示 截至2023年1月31日 全国共有300家网约车平台公司取得网约车平台经营许可 在2022年
  • 隐式声明函数‘raw_copy_to_user’的问题

    隐式声明函数 raw copy to user 的问题 其实一般来说都是隐式声明函数 copy to user 的问题 这类问题你就看看有没有引用正确的头文件 例如有些是
  • 一些常见面试OO design题目总结

    最近很多公司面试喜欢问一些OO design的题目 我总结了一些比较高频的题目 需求不一定准确 设计的也不一定好 欢迎提出建议 1 电梯设计 2 停车厂设计 3 通用卡牌游戏blackjack设计 4 1 电梯设计 需求 以面向对象的方式设
  • vue知识点总结

    vue知识点总结 1 vue是渐进式的javaScript框架 其作者是尤雨溪是以为华裔前google工程师 是一个动态构建用户界面 个人理解为可以在一个界面中动态展示其中某一部分的数据显示 运行 转换等功能 相比于jsp html页面有着
  • VRRP技术(详解)

    一 VRRP的概述 用户一般都是采用一个默认的网关来访问外部网络 如果此时默认网关设备发生故障 将中 断所有用户终端的网络访问 导致不可挽回的损失 VRRP可以实现多网关 并且可以解决多网关运行中冲突的错误 二 VRRP术语 VRRP路由器
  • jvm面试题,jvm常见高频面试题汇总,必知必会

    1 Java 类加载过程 Java 类加载需要经历一下 7 个过程 1 加载 加载是类加载的第一个过程 在这个阶段 将完成一下三件事情 通过一个类的全限定名获取该类的二进制流 将该二进制流中的静态存储结构转化为方法去运行时数据结 构 在内存
  • 线程安全性分类

    1 不可变 不可变的对象一定是线程安全的 并且永远也不需要额外的同步 因为一个不可变的对象只要构建正确 其外部可见状态永远也不会改变 永远也不会看到它处于不一致的状态 Java 类库中大多数基本数值类如Integer String和BigI
  • Mysql5.7 + 查询并解析json数据方法(后转)

    说明 本文是对 Mysql5 7 查询并解析json数据方法 的补充说明 具体请点击查看 当前 也可以认为就是水贴 对于某个属性的值未数组的时候 我们取某一条中某一条某个元素 大家应该都理解了 具体 如下 详情请看上一篇 Mysql5 7
  • HBase Java API使用IDEA开发----mapreduce读取hdfs文件写入hbase

    一 配置hadoop读取hbase的支持包 在hadoop env sh 添加export HADOOP CLASSPATH HBASE HOME lib 没有配置HBASE HOME的去 etc profile配置环境变量 路径根据你自己
  • Verilog 实现千兆网UDP协议 基于88E1111--数据接收

    注 此版本没有添加ARP PING 等 未完待续 注 项目采用Verilog开发 基于Vivado编译器 注 本版本没有计算校验 与上一篇相同开发环境 采用三段式状态机 同样 接收后将数据写入FIFO 相比于数据发送更为简单 只需在写入数据
  • 蚁群算法原理及python实现

    蚁群算法 ACO 是属于元启发式算法的一种 是一种群体的智能方法 算法原理 蚂蚁在寻找食物源时 会在其经过的路径上释放一种信息素 并能够感知其它蚂蚁释放的信息素 信息素浓度的大小表征到食物源路径的远近 信息素浓度越高 表示对应的路径距离越短
  • 通过按钮实现跳转新的xml界面

    首先创建关联跳转xml文件的class文件 package com example androidui import android app Activity import android os Bundle public class Ac
  • 算法——树查找算法

    树查找 对于层次结构的树 需要遍历其节点 根据遍历方式不同 可分为广度优先和深度优先 对于如下树结构 class TreeNode
  • 入门级题解:剑指 Offer 09. 用两个栈实现队列

    题目 用两个栈实现一个队列 队列的声明如下 请实现它的两个函数 appendTail 和 deleteHead 分别完成在队列尾部插入整数和在队列头部删除整数的功能 若队列中没有元素 deleteHead 操作返回 1 读题 队列 先入先出
  • mnist数据集彩色图像_使用MNIST数据集构建多类图像分类模型。

    mnist数据集彩色图像 Below are the steps to build a model that can classify handwritten digits with an accuracy of more than 95
  • 大数据的关键技术

    在大数据时代 传统的数据处理方法还适用吗 大数据环境下的数据处理需求 大数据环境下数据来源非常丰富且数据类型多样 存储和分析挖掘的数据量庞大 对数据展现的要求较高 并且很看重数据处理的高效性和可用性 传统数据处理方法的不足 传统的数据采集来
  • 记深度学习框架安装血泪史

    记深度学习框架安装血泪史 1 pytorch pytorch安装成功测试 查看pytorch版本 pytorch指定版本安装 pytorch降级 2 caffe 基于Anaconda安装 编译python接口 后记 关于Anaconda安装