栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

syft要求低配环境 v.s. 硬件要求高配环境:报错全记录

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

syft要求低配环境 v.s. 硬件要求高配环境:报错全记录

因为需要syft这个包,而显卡比较好,e.g., A100,有一些python、pytorch、cuda、cudnn版本不兼容的矛盾。

默认已有conda环境。因为要用A100所以CUDA必须>11.3,否则会崩溃。

1. 安装PyTorch 
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

 conda自动安装python3.10,不继续安装,换pip自动安装3.9。

pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

 这里和之前安装的syft版本冲突了。

 2. 安装syft · PyPI
pip install syft

按照上方官方命令,torch~=1.4.1,比我们的低多了。自己指定安装最高版本且不安装依赖包:

pip install syft==0.6.0 --no-dependencies

 再安装依赖包(参考这个低配版本):

pip install lz4~=3.0.2 msgpack~=1.0.0 phe~=1.4.0 scipy~=1.4.1 syft-proto~=0.2.5.a1 tblib~=1.6.0 websocket-client~=0.57.0 pip install websockets~=8.1.0 zstd~=1.4.4.0 Flask~=1.1.1 tornado==4.5.3 flask-socketio~=4.2.1 lz4~=3.0.2 Pillow~=6.2.2 
pip install requests~=2.22.0 numpy~=1.18.1
3. 测试
import torch
import syft as sy

print("Pytorch version:")
print(torch.__version__)
print("CUDA Version: ")
print(torch.version.cuda)
print("cuDNN version is :")
print(torch.backends.cudnn.version())
../python3.9/site-packages/syft/lib/torch/return_types.py:84: UserWarning: torch.triangular_solve is deprecated in favor of torch.linalg.solve_triangularand will be removed in a future PyTorch release.
torch.linalg.solve_triangular has its arguments reversed and does not return a copy of one of the inputs.
X = torch.triangular_solve(B, A).solution
should be replaced with
X = torch.linalg.solve_triangular(A, B). (Triggered internally at  ../aten/src/ATen/native/BatchLinearAlgebra.cpp:2183.)
  triangular_solve = s.triangular_solve(s)

Pytorch version:
1.12.0+cu113
CUDA Version: 
11.3
cuDNN version is :
8302

虽然有一个警告,但是不影响使用。

4. 实际使用中的报错

AttributeError: module 'syft' has no attribute 'TorchHook'

 原因在此:python - AttributeError: module 'syft' has no attribute 'TorchHook' - Stack Overflow

 然后就修改了以恶版本,并根据报错装了依赖库

pip install syft==0.2.9 --no-dependencies
pip install tblib
pip install syft_proto
pip install websocket

 这样看来低配版安装包完全不适用高配版本。

ModuleNotFoundError: No module named 'websocket._exceptions'

 https://groups.google.com/g/otree/c/9pSOaEfIQjc给出的解决方案竟然是重装python且成功了。。。

5. 结论

如题目,二者就是没办法一起使用,希望syft的开发者给点力,有成功的小伙伴欢迎留言讨论!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1026516.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号