由于对比实验的需要,需要跑一下这个PSCN。机子是21款14寸MacBook Pro 。
主要有三点需要注意:
先上最后的成功截图
一开始我是直接在pycharm上install的tensorflow,但每次一跑都会出现错误代码132,一查是tensorflow的环境没有配置好。
然后我就去安装miniforge,打开GitHub没在code页面找到python 3.9的,就下载了mambaforge,结果还是python 3.10的,还是成功地把自己的base环境升级成了3.10,吐。
后来(第二天)换了一个思路,去搜索在m1 pro上安装anaconda环境的教程,找到一个教程。这下成了。
MacBook21-m1 pro芯片安装Anaconda及TensorFlow的GPU版本(提供全部所需文件)_金色麦田~的博客-CSDN博客
我使用的networkx版本是2.4,实际上我从2.0一直试到2.5,但是在2.4的时候查了一下,网上说G.node已经deprected了,于是就改成了nodes,这也是我解决的最后一个bug。
python - AttributeError: 'Graph' object has no attribute 'node' - Stack Overflow
d=dict((k, v) for k, v in self.nx_graph.nodes.items())
利用下述代码安装pynauty,不需要使用作者给出的0.6.0版本,不仅不适用于m1-pro并且安装麻烦。
pip install --upgrade pynauty
另外需要将import部分中的代码改为如下:
from pynauty.graph import canon_label,Graph
不使用原来的,因为新的已经改名了
from pynauty.graph import canonical_labeling,Graph
发现在jupyter上import PSCN时总是会出现kernel died的情况,索性就直接在pscn.py中加了个main函数进行调用了。
- if __name__ == '__main__':
- bzr_dataset = load_local_data('./data', 'bzr', attributes=True)
- X, y = zip(*bzr_dataset)
- pscn=PSCN(w=35,k=5,epochs=10,batch_size=32,verbose=2,attr_dim=3,dummy_value=np.repeat(0,3)) #see receptive_field_maker_example for more details
- X_train, X_test, y_train, y_test=train_test_split(X,y,test_size=0.33, random_state=42)# see
- pscn.fit(X_train, y_train)
- preds = pscn.predict(X_test)
- np.sum(preds == y_test) / len(y_test)