一、安装
在正式安装前,先确认自己的环境是否符合要求:
1、python=3.8
2、pip >= 19.3
3、Linux系统(笔者使用的是ubuntu22.04 LTS版本的虚拟机,以及一个64核的云服务器)
SecretFlow(隐语)库的安装:
最简单,且零报错的安装方式是通过docker进行安装和运行,一步到位。参考以下代码(在Linux终端下运行):
export version=0.6.13b1 #指定版本号,可以自行选择,所有版本见https://hub.docker.com/r/secretflow/secretflow-anolis8/tags
docker run -it secretflow/secretflow-anolis8:${version} #运行指定版本的隐语(${version}代表取变量version的值)
注意,第二个命令需要切换到root下,或者加sudo才能正常运行。
镜像大概2个GB大小,下载需要一定时间。
二、测试运行
在本地和云服务器均可运行。下面以在本地运行为例:
执行完刚才的命令,终端提示会变成下面这样:
(secretflow) bash-4.4#
说明运行成功,进入了指定的shell. 此时输入python,回车,就可以进行代码编写和测试了。
进行一个简单的模拟:
import secretflow as tf
sf.init([‘alice’, ‘bob’, ‘carol’])
三、Bug汇总
1、在import secretflow as sf后,如果提示警告:
无法加载动态库xxx,yyy,是由于没有安装CUDA和CUDNN导致的。
2、按照文档里的方法初始化secretflow,即
import secretflow as sf
sf.init([‘alice’, ‘bob’, ‘carol’)], address=‘local’)
会报错,显示
AssertionError: Address should be none when parties are given.
意思是说给定通信方,就不要地址参数了。改成
sf.init([‘alice’, ‘bob’, ‘carol’])
即可。