前言
最近准备参加CADC的比赛,需要应用深度学习。我的电脑已经配置了Anaconda,想在此基础上配置pytorch。踩了一波雷之后总算是完成了。
注意:本文默认您的电脑上已经安装了Anaconda
虚拟环境创建
在开始菜单中找到Anaconda3(64-bit)文件夹,打开Anaconda Prompt,或者也可以从Anaconda Navigator界面打开cmd.exe
在进入Prompt后,默认的是你的base环境。为了方便管理,我们在此创建一个新的虚拟环境,用来使用pytorch框架。
输入conda create -n 虚拟空间名称 pythnotallow==版本号
,python版本号要根据你自己电脑的python版本确定。我的创建命令是:conda create -n pytorch pythnotallow==3.7
注意:在默认条件下,新创建的虚拟环境会被默认安装在你conda目录下的envs文件目录下。
你可以通过这条命令指定你的文件夹:conda create -p PATH(完整的文件夹路径) python==版本号
输入conda info -e
可以查看你当前conda中的环境。若创建成功,prompt中显示如下:
输入conda activate 环境名
可以进入新环境
环境管理的技巧:
conda deactivate
可以退出当前虚拟环境,回到base中conda remove -n 环境名称 name --all
可以删除无需使用的环境
pytorch的安装
这个环节是比较折磨人的哈哈,做好准备哦
进入pytorch官网,根据自己的情况选择合适的版本。若您的电脑无独立显卡的话,“CUDA”处选择“None”即可。我的选择如下:
复制从“conda”处起的命令行,在你新创建的环境中安装即可。
==注意:==由于网络原因,有的小伙伴可能会在下载pytorch1.x.x这个包失败。以下提供几种解决方法:
1.临时更改timeout时间
当错误提示为timeout时,可以输入conda config --set remote_read_timeout_secs 1000.0
来延长时间。让子弹飞一会~
2.从官网链接或清华源等处下载在本地安装
此时要注意下载的pytorch和torchvision版本要一致。下载完成后运行:conda install --use-local FILEPATH
安装即可。
3.修改download.py文件(比较麻烦)
此方法来源于知乎用户:木叶禅
https://zhuanlan.zhihu.com/p/212195072
同上,从别处下载好文件后放入anaconda安装根目录的pkgs文件夹内。但如果此时重新输入安装命令,conda仍然会重新下载。通过修改内置文件,即可让conda识别手动下载的文件。
- 寻找download.py文件->在base环境下运行以下命令:
python -c "from conda.gateways.connection import download; print(download.__file__)"
。 - 随后根据输出的文件路径,用IDLE或记事本打开。找到函数download,并在函数最开始处添加代码:
from ...base.constants import CONDA_TEMP_EXTENSION
tmp_file_path = target_full_path + CONDA_TEMP_EXTENSION
if exists(tmp_file_path):
print("\n[Download patch] file exists: %s", tmp_file_path)
checksum_ok = True
if sha256 or md5:
builder = hashlib.new("sha256" if sha256 else "md5")
checksum = sha256 if sha256 else md5
with open(tmp_file_path, 'rb') as f:
for chunk in iter(lambda: f.read(4096), b''):
builder.update(chunk)
actual_checksum = builder.hexdigest()
if actual_checksum != checksum:
print("\n[Download patch] cached file checksum mismatch: %s (%s != %s)",
checksum_type, actual_checksum, checksum)
checksum_ok = actual_checksum == checksum
if checksum_ok:
from ..disk.update import backoff_rename
backoff_rename(tmp_file_path, target_full_path, True)
if progress_update_callback:
progress_update_callback(1.0)
print("\n[Download patch] using cached file instead of download", target_full_path)
return
下图注释部分即为加入的代码
然后保存文件即可
- 将下载的包放入conda的pkgs目录后,重新执行命令安装。查看输出是否有如
[Download patch] file exists:......
以及[Download patch] using cached file instead of download:......
这两条。如果出现了,说明解决方法生效,conda将会利用本地的安装包安装。 - 但需要注意的是,我个人在应用时确实解决了pytorch包的安装问题。但是在随后的下载任务中,出现了
Error: No Such FIle or directory
的错误。将添加的函数注释后即恢复正常。
4.采用pip安装
查阅资料时许多朋友说用pip命令安装就可以顺利完成了。我个人没有尝试过。如果上述方法都不行的话可以试试哈。
当安装完成(done)后,命令行依次输入python
,import torch
。若无报错,则基本框架安装成功。
Jupyter Notebook上添加关联
此时若直接打开Jupyter Notebook,创建python文件并import torch
,会得到以下惊喜:
ModuleNotFoundError:No modele named 'torch'
- 以管理员身份打开Anaconda Prompt,在base环境中输入
conda install nb_conda
安装nb_conda。 - 进入创建的环境,命令行输入
conda install ipykernel
安装ipykernel。 - 安装完成后进入Jupyter Notebook,创建文件时可以发现多了两个选项
选择"Python [conda env:pytorch]"即可应用pytorch开始深度学习的旅程啦~
参考博文:
我是按照sjtucq这位老哥的教程来做的。但是途中遇到了一些不一样的坑。因此汇总了一下并做了总结分享。
昨天的课程上接触了pycharm,感觉利用anaconda管理包+pycharm来写代码会更舒服。基于conda时,pycharm中创建环境和包的添加可以在GUI界面完成,对入门的朋友可能会更为友好。