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的开发者给点力,有成功的小伙伴欢迎留言讨论!

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值