You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Gradio将Transformer模型成功部署到Hugging Face Space

Hugging Face Space 部署Gradio图像分类模型解决方案

你遇到的ModuleNotFoundError: No module named 'transformers'报错,核心原因是Hugging Face Space不会自动识别Python代码里的导入语句安装依赖,直接在.py脚本中写pip install是无效的——pip是终端命令,不属于Python语法,直接写在脚本中既不会被正常执行,也不符合Space的依赖加载规则。

按照以下步骤操作即可完成部署:

1. 新增依赖声明文件

在和app.py同级的仓库根目录,新建名为requirements.txt的文件,写入所有需要的第三方依赖,Space在构建应用时会自动读取这个文件安装对应包,文件内容如下:

gradio
transformers
timm
torch
pillow

不需要手动指定包版本,Space的基础运行环境会自动匹配兼容的稳定版本,手动写死版本号反而容易触发版本冲突。

2. 修正原app.py的逻辑错误

你的原有代码存在两个会导致运行失败的逻辑问题:

  • 模型pipeline初始化写在预测函数内部,每次用户提交图片都会重新加载模型,会导致响应超时、内存占用过高
  • 最后生成界面时引用的model是函数内的局部变量,全局作用域无法访问,就算依赖装完也会触发NameError

修正后的可直接运行的代码如下:

from transformers import pipeline
import gradio as gr

# 应用启动时全局加载模型,仅加载1次,降低运行开销
model = pipeline("image-classification", model="google/vit-base-patch16-224")

def image_classifier(image):
    return model(image)

gr.Interface.from_pipeline(model).launch()

原代码中导入的timm没有实际调用,属于冗余导入,pipeline会自动匹配模型需要的后端依赖,不需要额外在代码中手动导入。如果需要使用timm库中的特定图像分类模型,直接在pipeline的model参数中传入对应的timm模型名即可。

3. 触发应用重新构建

将requirements.txt和修正后的app.py上传到Space仓库根目录后,Space会自动触发新一轮构建,等待构建日志显示应用启动成功后,就可以正常访问使用图像分类功能了。


内容的提问来源于stack exchange,提问作者Ifeanyi Idiaye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 17:36:24