Nature 2025 TabPFN的使用与报错解决

官网链接:GitHub - PriorLabs/TabPFN: ⚡ TabPFN: Foundation Model for Tabular Data ⚡

1、TabPFN的安装

直接

复制代码
pip install tabpfn

2、官网运行代码

(1)分类

python 复制代码
from sklearn.datasets import load_breast_cancer
from sklearn.metrics import accuracy_score, roc_auc_score
from sklearn.model_selection import train_test_split

from tabpfn import TabPFNClassifier
from tabpfn.constants import ModelVersion

# Load data
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)

# Initialize a classifier
clf = TabPFNClassifier()  # Uses TabPFN 2.5 weights, finetuned on real data.
# To use TabPFN v2:
# clf = TabPFNClassifier.create_default_for_version(ModelVersion.V2)
clf.fit(X_train, y_train)


# Predict probabilities
prediction_probabilities = clf.predict_proba(X_test)
print("ROC AUC:", roc_auc_score(y_test, prediction_probabilities[:, 1]))

# Predict labels
predictions = clf.predict(X_test)
print("Accuracy", accuracy_score(y_test, predictions))

(2)回归

python 复制代码
from sklearn.datasets import fetch_openml
from sklearn.metrics import mean_squared_error, r2_score
from sklearn.model_selection import train_test_split

from tabpfn import TabPFNRegressor
from tabpfn.constants import ModelVersion

# Load Boston Housing data
df = fetch_openml(data_id=531, as_frame=True)  # Boston Housing dataset
X = df.data
y = df.target.astype(float)  # Ensure target is float for regression

# Train-test split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)

# Initialize the regressor
regressor = TabPFNRegressor()  # Uses TabPFN-2.5 weights, trained on synthetic data only.
# To use TabPFN v2:
# regressor = TabPFNRegressor.create_default_for_version(ModelVersion.V2)
regressor.fit(X_train, y_train)

# Predict on the test set
predictions = regressor.predict(X_test)

# Evaluate the model
mse = mean_squared_error(y_test, predictions)
r2 = r2_score(y_test, predictions)

print("Mean Squared Error (MSE):", mse)
print("R² Score:", r2)

3、"连接失败"报错解决

但这里我直接运行出现报错

由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。' thrown while requesting HEAD https://huggingface.co/Prior-Labs/tabpfn_2_5/resolve/main/tabpfn-v2.5-classifier-v2.5_default.ckpt

这是由于huggingface的限制,无法连接上,这里提供两种方案

(1)安全上网去huggingface官网下载

Prior-Labs/tabpfn_2_5 at main

但这里注意,你什么版本报错,就下载对应的ckpt文件,我这里下的其实是tabpfn2.0

这里有很多ckpt文件,我就下载了分类的default,然后修改代码

python 复制代码
model_path = "./tabpfn/tabpfn-v2.5-classifier-v2.5_default.ckpt"
clf = TabPFNClassifier(
        model_path=model_path,  # 直接指定路径
        device='cuda:0',  # 如果没有GPU,使用CPU
        ) 

(2)去镜像网站上下载

Prior-Labs/TabPFN-v2-clf at main

由于我本地笔记本没有gpu,因此使用了cpu,但这里cpu也有报错,因为cpu性能太低了,触发了保护机制

于是使用服务器进行实验,但这里出现新的问题,可能还有一些是参数不对,这是由于下载的版本和权重文件不符合,因此导致对不上。(ps:tabpfn一定要python>=3.9)

提供一个我下载的版本:

python 复制代码
torch==2.1.1+cu118
tabpfn==2.2.1
model=tabpfn-v2-classifier-finetuned-zk73skhh.ckpt

终于运行成功啦!!


都看到这里了,给个小心心♥呗~

相关推荐
松☆20 小时前
CANN深度解析:构建高效AI推理引擎的软件基
人工智能
ujainu20 小时前
CANN仓库中的AIGC可持续演进工程:昇腾AI软件栈如何构建“活”的开源生态
人工智能·开源·aigc
光锥智能20 小时前
从连接机器到激活知识:探寻工业互联网深水区的山钢范式
人工智能
GHL28427109020 小时前
分析式AI学习
人工智能·学习·ai编程
ujainu21 小时前
CANN仓库中的AIGC性能极限挑战:昇腾软件栈如何榨干每一瓦算力
人工智能·开源
wenzhangli721 小时前
ooderA2UI BridgeCode 深度解析:从设计原理到 Trae Solo Skill 实践
java·开发语言·人工智能·开源
brave and determined21 小时前
CANN ops-nn算子库使用教程:实现神经网络在NPU上的加速计算
人工智能·深度学习·神经网络
brave and determined21 小时前
CANN算子开发基础框架opbase完全解析
人工智能
一枕眠秋雨>o<21 小时前
调度的艺术:CANN Runtime如何编织昇腾AI的时空秩序
人工智能
晚烛21 小时前
CANN + 物理信息神经网络(PINNs):求解偏微分方程的新范式
javascript·人工智能·flutter·html·零售