使用GraphLab构建推荐系统时遇SFrame属性缺失的AttributeError求助
我之前搭推荐系统时也碰到过一模一样的坑,折腾了好一会儿才捋顺,给你分享几个靠谱的排查和解决方向:
1. 先确认你装的是不是官方GraphLab Create
pip仓库里有个同名的graphlab包,但它不是咱们做机器学习用的那个GraphLab Create,自然没有SFrame类。你可以先在终端或Notebook里跑命令查一下:pip show graphlab
如果显示的包描述不是GraphLab Create,赶紧卸载它:pip uninstall graphlab
然后用你的产品密钥重新安装官方版本:pip install --upgrade --no-cache-dir https://get.graphlab.com/GraphLab-Create/2.1/你的邮箱/你的产品密钥/GraphLab-Create-License.tar.gz
2. 版本迭代导致的命名空间变化
后来GraphLab Create被收购后改名为Turi Create了,如果你装的是新版Turi Create,SFrame的导入方式已经变了,得这么写:
import turicreate as tc train_data = tc.SFrame.read_csv('ratings_ba...')
3. 换一种导入方式试试
如果你确定装的是旧版GraphLab Create,可能直接调用模块属性的方式有问题,试试显式导入SFrame:
from graphlab import SFrame train_data = SFrame.read_csv('ratings_ba...')
4. 用干净的conda环境隔离冲突
既然你已经试过重启内核、更新conda,那可以新建一个纯净的conda环境,避免其他包干扰:
conda create -n graphlab_env python=3.6 # GraphLab Create对Python版本有要求,3.6/3.7版本兼容性最好 conda activate graphlab_env # 重新安装GraphLab Create pip install --upgrade --no-cache-dir https://get.graphlab.com/GraphLab-Create/2.1/你的邮箱/你的产品密钥/GraphLab-Create-License.tar.gz
附你提供的错误回溯:
AttributeErrorTraceback (most recent call last)
in ()
1 import graphlab
----> 2 train_data = graphlab.SFrame.read_csv('ratings_ba...')
内容的提问来源于stack exchange,提问作者user8747401

