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

终于运行成功啦!!


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

相关推荐
198******126343 分钟前
视频BGM怎么单独抽出
人工智能
HeteroCat5 分钟前
从「工具调用」到「Code Mode」:AI Agent 正在经历一场范式转移
人工智能
shaibdoio8 分钟前
RAG 系统工程落地:检索准确率、响应速度与成本平衡的实践思考
人工智能
老金带你玩AI5 小时前
这几天,我都是拿手机让dot帮我干活
人工智能
7yewh8 小时前
SLAM 三维空间刚体运动(2)
数据结构·人工智能·机器人·嵌入式·slam
小虎AI生活8 小时前
WorkBuddy 模型选型实操:0.03 倍的 Space-Bunny 怎么用、派什么活、避什么坑
人工智能·超级个体·一人公司·青玥ai
ai小陈8 小时前
GPU服务器租用存储验收:检查点写入与磁盘吞吐实战
运维·服务器·人工智能·ai·ssh·gpu算力
微三云马玮均—GEO源码系统 私有化部署8 小时前
消费返物业费:消费+服务趋势的必然产物!
大数据·人工智能·物联网·区块链·生活
明月_清风9 小时前
Muse 登顶 App Store 第一,SDK 直接开源:AI Agent 开始进入下一个阶段
人工智能·后端