0


【持续更新】关于SafeU的安装说明

目录

一、写在前面

安全半监督学习(S3L)是目前较为新的一个领域,Python 中有两种第三方库(很大程度上)实现了S3L的一些算法:

s3l

safeu

,均为同一作者开发(两个包的内容似乎一模一样,只有名字不一样)。前者在PyPI上已经搜不到了,所以本文将聚焦于后者的安装使用。

SafeU链接:https://pypi.org/project/safeu/**(版本0.1.0)**

可能会有读者疑惑,安装一个第三方库不是有手就行吗?这还需要单独写一篇文章来讲解?

这是因为,SafeU所依托的一些包太过陈旧(开发者已经两年多没有维护了),最新的包又不兼容SafeU,如果强行去折腾版本问题最后可能竹篮打水一场空。所以目前来说,最佳方案是安装最新版本的依赖包,然后魔改源码

二、SafeU的安装

强烈建议用

conda

创建一个新的环境。

在命令行中按顺序依次执行以下命令:

conda create -n s3l python numpy scipy pandas scikit-learn h5py
conda activate s3l
pip install safeu

三、魔改源码

首先进入

...\envs\s3l\Lib\site-packages\safeu

目录下,准备开始魔改源码。

3.1

Experiments.py

的修改

因为

sklearn.externals.joblib

已经弃用,所将第 10 行改为

from joblib import Parallel, delayed

3.2

datasets\base.py

的修改

pandas

DataFrame

数据结构转换出现问题,将第 332 行改为

X = pd.read_csv(f, delimiter=',', low_memory=False).to_numpy()

将第 338 行改为

y = pd.read_csv(f, delimiter=',', low_memory=False).to_numpy()

3.3

classification\LPA.py

的修改

该文件对应的是标签传播算法,其中使用的

sklearn

的一些API已经过时。

将第 2 行改为

from sklearn.semi_supervised import LabelPropagation

124 行改为

model = LabelPropagation(kernel=self.kernel,

128 行没有

ravel

,需要改为

model.fit(instance, labels.ravel())

四、降低版本以兼容

如果不想魔改源码可以看这一章节(注意是独立的)。

在命令行按顺序依次执行以下命令

conda create -n s3l python=3.7
conda activate s3l
pip install numpy==1.15.1 scipy==1.1.0 pandas==0.24 scikit-learn==0.19.2 h5py
pip install safeu

五、写在最后

SafeU

的开发者太久没维护了,不建议使用。


本文转载自: https://blog.csdn.net/weixin_44022472/article/details/124035035
版权归原作者 serity 所有, 如有侵权,请联系我们删除。

“【持续更新】关于SafeU的安装说明”的评论:

还没有评论