無數踩坑系列(3)-配置pytorch

配置pytorch環境

  • 1. 命令一鍵式安裝
  • 2.源碼安裝
    • 問題1
    • 問題2
    • 問題3
    • 問題4
  • 3.克隆一個已有環境,帶pytorch
  • 4.GPU驅動版本不對

在實際開發中,想要在自己的機子上跑別人的代碼;或者,在新的機子上跑自己的代碼,總是面臨著環境配置的問題。python配置環境時最主要的就是庫的配置。配置環境的過程中會出現各種各樣的狀況,環境配置完全后也會應為庫文件版本的不同而導致各種問題。本文記錄了在最近一次環境配置過程中踩過的種種神坑。

1. 命令一鍵式安裝

官網命令行一鍵安裝:https://pytorch.org/

conda install pytorch torchvision cudatoolkit=9.0 -c pytorch

如果網不好的話安裝著安裝著,輸出提示:An HTTP error occurred when trying to retrieve this URL.

2019年conda 相繼關閉了清華和中科大的鏡像源,所以通過在官網下載速度太慢,此情此景下:嘗試用source安裝,安裝過程中遇到各種奇葩問題,總結如下:

2.源碼安裝

問題1

問題:沒有安裝git

The program ‘git’ is currently not installed. To run ‘git’ please ask your administrator to install

解決:終端上安裝

sudo apt-get install git

問題2

問題:git緩存不夠大

error: RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
fatal: clone of ‘https://github.com/eigenteam/eigen-git-mirror.git’ into submodule path ‘third_party/eigen’ failed

參考文檔:https://blog.csdn.net/qq_34121797/article/details/79561110

問題3

問題:git 克隆到一半,因為各種原因(網不好,突然斷電,緩存不夠大)終止克隆,想要繼續下載。

解決方案:

~/source/$ cd pytorch#進入對應的倉庫目錄底下,更新一遍
~/source/pytorch$ git submodule update --init --recursive

參考文檔:https://blog.csdn.net/kingroc/article/details/86526150

問題4

File “setup.py”, line 749, in
build_deps()
File “setup.py”, line 323, in build_deps
cmake=cmake)
File “/home/chenyy/pytorch/tools/build_pytorch_libs.py”, line 61, in build_caffe2
rerun_cmake)
File “/home/chenyy/pytorch/tools/setup_helpers/cmake.py”, line 330, in generate
self.run(args, env=my_env)
File “/home/chenyy/pytorch/tools/setup_helpers/cmake.py”, line 107, in run
check_call(command, cwd=self.build_dir, env=env)
File “/home/chenyy/anaconda3/lib/python3.6/subprocess.py”, line 286, in check_call
retcode = call(*popenargs, **kwargs)
File “/home/chenyy/anaconda3/lib/python3.6/subprocess.py”, line 267, in call
with Popen(*popenargs, **kwargs) as p:
File “/home/chenyy/anaconda3/lib/python3.6/subprocess.py”, line 709, in init
restore_signals, start_new_session)
File “/home/chenyy/anaconda3/lib/python3.6/subprocess.py”, line 1344, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: ‘cmake’: ‘cmake’

(conda install numpy ninja pyyaml mkl mkl-include setuptools cmake cffi typing)
解決:確保你的環境中有以上支持包,并且確認該環境被激活,(如果環境沒有激活就會被自己蠢死)

conda activate python36

每次裝都有驚喜,會發現不同的錯誤,真是神了。

下面幾篇文章都總結了源碼安裝過程中會出現的錯誤:
https://blog.csdn.net/hungryof/article/details/78187512
https://blog.csdn.net/tanmx219/article/details/86505741
總結的了他配置過程中的種種錯誤,挺好的。還提供了源碼安裝的卸載方法,估計之后的源碼安裝和這個差不多。

3.克隆一個已有環境,帶pytorch

配置好pytorch 之后發現還是不能用,最后能想到的就是GPU的版本不對

解決方案,克隆一個已有的環境
參考文檔:https://www.jianshu.com/p/b86c17057da8

1.將已有的環境打包成.yaml文件(切換到指定的文件夾,文件會在終端正在工作的文件夾下面生成一個.yaml文件)

conda env export > environment.yaml

2.生成指定名字的環境:

conda env create --name python362 -f environment1.yaml

->出現問題1:

Error: ‘conda’ can only be installed into the root environment

->解決:打開對應的環境,去除一些鏈接項,再生成.yaml文件再操作就可以了
參考文檔:https://blog.csdn.net/lazybones_3/article/details/79501243

4.GPU驅動版本不對

按照:conda install pytorch torchvision cudatoolkit=10.1命令裝完,發現cuda并不能用:

>>> import torch
>>> torch.cuda.is_available()
False

運行需要GPU的程序,報錯信息如下:
no CUDA-capable device is detected Traceback (most recent call last):

解決:
1.查看機子的合適驅動

ubuntu-drivers devices

2.安裝合適驅動

sudo apt-get install nvidia-xxx #xxx 為版本號

3.安裝完后重啟

sudo reboot

4.查看驅動狀態

sudo nvidia-smi

參考資料:https://blog.csdn.net/flowrush/article/details/80254301

在2.安裝驅動的時候,又報了一個錯:E: Sub-process /usr/bin/dpkg returned an error code (1)
采用下面博文方法二修復了:

sudo apt-get update --fix-missing
sudo apt-get autoremove && sudo apt-get clean && sudo apt-get install -f

修復后重啟,驅動就合適了,之前裝的帶cuda版本的pytorch環境動能用了。
參考資料:https://blog.csdn.net/sunshinegirl168660/article/details/72934398

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/445245.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/445245.shtml
英文地址,請注明出處:http://en.pswp.cn/news/445245.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

小貓的java基礎知識點匯總(上)

1、一個".java"源文件中是否可以包括多個類(不是內部類)?有什么限制? 可以有多個類,但只能有一個public的類,并且public的類名必須與文件名相一致。 2、short s1 1; s1 s11; 有沒有錯&#xff…

機器學習算法分類總結

機器學習方法分類總結 這篇文章只是一個類似于知識概括的文章,主要作用是幫忙梳理: 1) 分類 貝葉斯模型(Bayesian Mode) - 樸素貝葉斯算法(Naive Bayesian Mode) - 平均單依賴估計(AveragedO…

無限踩坑系列(5)-MySQLdb

MySQLdb在Python2.x 時使用的是MySQLdbpython3中這個庫已經不再使用了,所有的功能都由pymysql或mysqlclient替代。所以 想在python3中配MySQLdb真是一個深的不能再深的坑了。下面記錄了愚蠢的填坑過程,僅做有類似錯誤的參考。參考文檔:https:…

后端 分頁組件實例

/*** 分頁相關信息*/ public class Page {//當前頁碼private int current1;//顯示的上限private int limit10;//數據總數//用于計算頁數private int rows;//路徑private String path;public int getCurrent() {return current;}public void setCurrent(int current) {if (curre…

大數據學習(07)--MapReduce

文章目錄目錄1.MapReduce介紹1.1 什么是分布式并行編程?1.2 MapReduce模型介紹1.3 map和reduce函數2.MapReduce體系架構3.MapReduce工作流程3.1 概述3.2 MapReduce各個階段介紹3.3 shuffle過程介紹3.3.1 shuffle過程簡介3.3.2 map中的shuffle過程3.3.3 reduce中的sh…

關閉用playsound函數的WAV文件

播放聲音文件 PlaySound函數應用 1.關閉用playsound函數的WAV文件 PlaySound(0,NULL,0);即可 // test2.cpp : Defines the entry point for the application.//#include "stdafx.h"#include <mmsystem.h>int APIENTRY WinMain(HINSTANCE hInstance, …

身份驗證

傳統身份驗證的方法 HTTP 是一種沒有狀態的協議&#xff0c;也就是它并不知道是誰是訪問應用。這里我們把用戶看成是客戶端&#xff0c;客戶端使用用戶名還有密碼通過了身份驗證&#xff0c;不過下回這個客戶端再發送請求時候&#xff0c;還得再驗證一下。 解決的方法就是&…

Pytorch(4)-模型保存-載入-eval()

模型保存與提取1. 整個模型 保存-載入2. 僅模型參數 保存-載入3. GPU/CPU模型保存與導入4. net.eval()--固定模型隨機項神經網絡模型在線訓練完之后需要保存下來&#xff0c;以便下次使用時可以直接導入已經訓練好的模型。pytorch 提供兩種方式保存模型:方式1&#xff1a;保存整…

大數據學習(08)--Hadoop中的數據倉庫Hive

文章目錄目錄1.什么是數據倉庫&#xff1f;1.1數據倉庫概念1.2傳統數據倉庫面臨的挑戰1.3 Hive介紹1.4 Hive與傳統數據庫的對比1.5 Hive在企業中的部署與應用2.Hive系統架構3.Hive工作原理3.1 SQL轉換為MapReduce作業的基本原理3.2 Hive中SQL查詢轉換MapReduce作業的過程4.Hive…

dubbo知識點總結 持續更新

Dubbo 支持哪些協議&#xff0c;每種協議的應用場景&#xff0c;優缺點&#xff1f; ? dubbo&#xff1a; 單一長連接和 NIO 異步通訊&#xff0c;適合大并發小數據量的服務調用&#xff0c; 以及消費者遠大于提供者。傳輸協議 TCP&#xff0c;異步&#xff0c;Hessian 序列化…

使用Linux auto Makefile自動生成的運行步驟

首先創建一個 Linux Makefile.am.這一步是創建Linux Makefile很重要的一步&#xff0c;automake要用的腳本配置文件是Linux Makefile.am&#xff0c;用戶需要自己創建相應的文件。之后&#xff0c;automake工具轉換成Linux Makefile.in。AD&#xff1a; 在向大家詳細介紹Linux …

無限踩坑系列(6)-mySQL數據庫鏈接錯誤

mySQL數據庫鏈接錯誤錯誤1錯誤2長鏈接短連接應用場景需要一直訪問mySQL數據庫&#xff0c;遇到如下錯誤&#xff1a;錯誤1 釋放已經釋放的數據庫鏈接conn.&#xff0c;或者&#xff0c;操作已經釋放的數據庫鏈接conn.或者失去鏈接后再操作數據庫都可能會報這個錯誤 aise err.I…

初探函數式編程和面對對象式編程

文章目錄目錄1.函數式編程和面向對象編程概念1.1 函數式編程1.2 面向對象編程2.函數式編程和面向對象編程的優缺點2.1 函數式編程優點缺點2.2 面對對象編程優點缺點3.為什么在并行計算中函數式編程比較好3.1 什么是并行計算3.2 函數式編程興起原因目錄 1.函數式編程和面向對象…

linux常用解壓和壓縮文件的命令

linux常用解壓和壓縮文件的命令 .tar 解包&#xff1a;tar xvf FileName.tar打包&#xff1a;tar cvf FileName.tar DirName&#xff08;注&#xff1a;tar是打包&#xff0c;不是壓縮&#xff01;&#xff09;———————————————.gz解壓1&#xff1a;gunzip FileN…

Python外(4)-讀寫mat文件

讀寫mat文件1.讀取2.寫入.mat 是matlab中數據存儲的標準格式&#xff0c;Python中能夠通過庫scipy讀取和保存。導入scipy庫 from scipy import io 1.讀取 io.loadmat(file_name, mdictNone, appendmatTrue, **kwargs) 簡便方式&#xff1a; io.loadmat(file_name) append mat–…

Linux下的xml文件的創建

創建一個xml文檔流程如下&#xff1a; l 用xmlNewDoc函數創建一個文檔指針doc&#xff1b; l 用xmlNewNode函數創建一個節點指針root_node&#xff1b; l 用xmlDocSetRootElement將root_node設置為doc的根結點&#xff1b; l 給root_node添加一系列的子節點&#x…

壓力測試http_load 通過修改配置測試https協議成功了。

到http://www.acme.com/software/http_load/ 下載http_load &#xff0c;安裝也很簡單直接make;make instlall 就行。 如果你需要測試https&#xff0c;你必須將 Makefile中 # CONFIGURE: If you want to compile in support for https, uncomment these # definitions. You w…

面向對象設計與分析40講(16)靜態工廠方法模式

前面我們介紹了簡單工廠模式&#xff0c;在創建對象前&#xff0c;我們需要先創建工廠&#xff0c;然后再通過工廠去創建產品。 如果將工廠的創建方法static化&#xff0c;那么無需創建工廠即可通過靜態方法直接調用的方式創建產品&#xff1a; // 工廠類&#xff0c;定義了靜…

搜索詳解

搜索 一.dfs和bfs簡介 深度優先遍歷(dfs) 本質&#xff1a; 遍歷每一個點。 遍歷流程&#xff1a; 從起點開始&#xff0c;在其一條分支上一條路走到黑&#xff0c;走不通了就往回走&#xff0c;只要當前有分支就繼續往下走&#xff0c;直到將所有的點遍歷一遍。 剪枝&a…

Python外(5)-for-enumerate()-zip()

for循環小技巧技巧1&#xff1a;enumerate()技巧2&#xff1a;打包兩個可遍歷數據&#xff0c;一起循環-zip()技巧1&#xff1a;enumerate() 在使用pytorch訓練網絡的過程中&#xff0c;官方教程給出了 for i, data in enumerate(trainloader, 0): 這涉及到enumerate函數的使用…