使用transformers中的pipeline调用huggingface中模型过程中可能遇到的问题和修改建议

使用transformers中的pipeline调用huggingface中模型过程

  • 前言
  • 管线使用中的问题和解决
    • huggingface的连接问题
      • 使用huggingface示例
      • 修改源继续使用pipeline
    • No module named 'keras.engine'

前言

HuggingFace有一个巨大的模型库,其中包括很多的比较成熟的经典模型,这些模型即使不进行任何训练也能直接得出比较好的预测结果(Zero Shot Learning)。

transformers中提供的管线(pipeline)API隐藏了大量复杂的底层代码,直接使用现有的模型,不再需要再训练就可以获得较好的效果。

在学习transformers的初期可能会遇到一些问题,本篇文章将解决transformers中使用管线中可能遇到的问题。

管线使用中的问题和解决

在本篇中以情感分析任务为例,实现通过管线使用中的问题和解决。

huggingface的连接问题

使用管线进行情感分析的代码如下:

from transformers import pipelineclassifier = pipeline("sentiment-analysis")
result = classifier("I hate you") 

如果运行过程中出现以下报错,说明遇到了huggingface连接问题,受网络影响,无论是访问huggingface还是从huggingface上下载模型都可能存在连接问题,一般情况下我们会采用镜像源的方式解决。
在这里插入图片描述
从上述报错中我们可以看到,情感分析(sentiment-analysis)任务中,访问的链接是https://huggingface.co/distilbert-base-uncased-finetuned-sst-2-english,当不能访问huggingface时,这个链接自然也不能正常访问。这时需要将huggingface.co换成镜像源hf-mirror.com,可以通过访问镜像源来获取模型。有两种方式可以使用该模型进行情感分析——修改源继续使用pipeline和使用huggingface示例。

使用huggingface示例

我们将访问链接换成https://hf-mirror.com/distilbert-base-uncased-finetuned-sst-2-english可以直接访问镜像源中模型的页面,点击Files and versions可以查看模型文件
在这里插入图片描述
随后我们只需要将这些文件和文件夹全部下载下来并且放在同一个文件夹中即可。
在这里插入图片描述下载完成后我们返回到Model card向下拉可以看到使用这一模型的示例
在这里插入图片描述
如果没有下载模型,使用该代码也会自动下载,但有可能因为超时而断联,从而导致下载失败。所以这里建议先下载后,再执行示例。

在这里我模型下载的路径是"../huggingface_model/distilbert-base-uncased-finetuned-sst-2-english",将示例中模型名字换成本地路径即可。

import torch
from transformers import DistilBertTokenizer, DistilBertForSequenceClassificationtokenizer = DistilBertTokenizer.from_pretrained("../huggingface_model/distilbert-base-uncased-finetuned-sst-2-english")
model = DistilBertForSequenceClassification.from_pretrained("../huggingface_model/distilbert-base-uncased-finetuned-sst-2-english")inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
with torch.no_grad():logits = model(**inputs).logitspredicted_class_id = logits.argmax().item()
print(model.config.id2label[predicted_class_id])

运行结果:

POSITIVE

修改源继续使用pipeline

修改后的代码如下:

import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
from transformers import pipelineclassifier = pipeline("sentiment-analysis")
result = classifier("I hate you") 
print(result)

这样修改的原理是将环境变量HF_ENDPOINT修改为https://hf-mirror.com(默认为https://huggingface.co),设置完之后将默认使用镜像源访问模型。

运行结果
在这里插入图片描述

[{'label': 'NEGATIVE', 'score': 0.9991129040718079}]

从运行结果可以看到链接地址已经变成了镜像源的地址,并且会自动下载模型,不过要注意的是模型默认会下载到C盘,在windows系统中,路径为:C:\Users\<你的主机名>\.cache\huggingface\hub
在这里插入图片描述

No module named ‘keras.engine’

在使用管线时还有可以存在以下问题,报错如下:No module named 'keras.engine'
在这里插入图片描述
这个报错是因为transformers、tensorflow、keras三者之间版本不匹配产生的问题,一般来讲将这三个包升级到最新版本即可。

pip install --upgrade tensorflow
pip install --upgrade keras
pip install --upgrade transformers

如果升级后还是有问题,不妨参照以下版本,至少在本案例中没有出现问题。

名称版本
tensorflow2.17.0
keras3.5.0
transformers4.45.1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/435347.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用ChatGPT实现的生成式人工智能自动化控制系统

一、引言 随着信息化与智能化时代的到来&#xff0c;人工智能&#xff08;AI&#xff09;技术迅猛发展&#xff0c;正在深刻地重塑各行业的运营模式。在这一背景下&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;以其卓越的创造力和广泛的应用潜力&#xff…

Webpack 特性探讨:CDN、分包、Tree Shaking 与热更新

文章目录 前言包准备CDN 集成代码分包Tree Shaking原理实现条件&#xff1a;解决 treeShaking 无效方案&#xff1a;示例代码&#xff1a; 热更新&#xff08;HMR&#xff09; 前言 Webpack 作为现代前端开发中的核心构建工具&#xff0c;提供了丰富的特性来帮助开发者优化和打…

java基础(4)类和对象

目录 1.前言 2.正文 2.1类的定义与使用 2.1.1类的定义 2.1.2类的实例化 2.1.3this引用 2.1.3.1 访问当前对象的成员变量 2.1.3.2调用当前对象的成员方法 2.1.3.3构造函数中的 this 2.1.3.4归纳this 2.2封装 2.2.1封装的定义 2.2.2访问修饰符 2.3static 2.3.1sta…

初学Vue

文章目录 简介特点 初识Vue模板语法两大类插值语法指令语法 两种数据绑定方式单项绑定&#xff08;v-bind&#xff09;双向绑定&#xff08;v-model&#xff09; 数据代理事件处理基本使用事件修饰符 键盘事件计算属性 computed 简介 一套用于构建用户界面的渐进式JavaScript框…

【面试题】软件测试实习(含答案)

软件测试实习常见面试题&#xff0c;主要是功能测试相关的基础问题 目录 一、软件测试基础 1、介绍一下你最近的项目&#xff0c;以及工作职责 2、软件项目的测试流程? 3、黑盒测试与白盒测试的区别? 4、黑盒测试常见的设计方法?怎么理解等价类方法和边界值方法 1&…

服务器几核几G几M是什么意思?如何选择?

服务器几核几G几M是什么意思&#xff1f;我们建站、搭建网络平台都要用到云服务器&#xff0c;不管在腾讯云、阿里云还是别的云服务平台选购&#xff0c;都会接触到服务器配置。云服务器就是把物理服务器&#xff08;俗称“母鸡”&#xff09;&#xff0c;用虚拟机技术虚拟出多…

FreeRTOS学习笔记一——FreeRTOS介绍

RTOS学习笔记&#xff0c;主要参考正点原子教程 目录 FreeRTOS特点任务调度方式抢占式调度时间片调度 任务状态状态转换任务列表 FreeRTOS特点 实现多个任务功能划分延时函数实现任务调度高优先级抢占低优先级每个任务都有自己的栈空间 注意&#xff1a; 中断可以打断任意任务…

设计模式之享元(Flyweight)模式

前言 面向对象很好地解决了 “抽象” 的问题&#xff0c;但是不可避免的要付出一定的代价。对于通常情况来讲&#xff0c;面向对象的成本大都可以忽略不计。但是某些情况&#xff0c;面向对象所带来的成本必须谨慎处理 具体需要自己根据需求去评估 定义 “对象性能” 模式。运用…

探索基于知识图谱和 ChatGPT 结合制造服务推荐前沿

0.概述 论文地址&#xff1a;https://arxiv.org/abs/2404.06571 本研究探讨了制造系统集成商如何构建知识图谱来识别新的制造合作伙伴&#xff0c;并通过供应链多样化来降低风险。它提出了一种使用制造服务知识图谱&#xff08;MSKG&#xff09;提高 ChatGPT 响应准确性和完整…

探索顶级低代码开发平台,实现创新

文章盘点ZohoCreator、OutSystems等10款顶尖低代码开发平台&#xff0c;各平台以快速开发、集成、数据安全等为主要特点&#xff0c;适用于不同企业需求&#xff0c;助力数字化转型。 一、Zoho Creator Zoho Creator 是一个低代码开发平台&#xff0c;它简化了应用开发中的复杂…

小程序视频编辑SDK解决方案,轻量化视频制作解决方案

面对小程序、网页、HTML5等多样化平台&#xff0c;如何轻松实现视频编辑的轻量化与高效化&#xff0c;成为了众多开发者和内容创作者共同面临的挑战。正是洞察到这一市场需求&#xff0c;美摄科技推出了其领先的小程序视频编辑SDK解决方案&#xff0c;为创意插上翅膀&#xff0…

2024前端技术发展概况

当前前端技术呈现出多方面的发展态势&#xff0c;以下是详细介绍&#xff1a; 前端框架不断演进&#xff1a; React&#xff1a;作为流行的前端框架之一&#xff0c;React 依旧保持着强大的生命力。它具有高效的虚拟 DOM 机制&#xff0c;能够快速更新和渲染页面&#xff0c;极…

pdf页面尺寸裁减

1、编辑pdf 2、点击裁减页面&#xff0c;并在空白区域双击裁减 3、输入裁减数据&#xff1a;

【易上手快捷开发新框架技术】nicegui标签组件lable用法庖丁解牛深度解读和示例源代码IDE运行和调试通过截图为证

传奇开心果微博文系列 序言一、标签组件lable最基本用法示例1.在网页上显示出 Hello World 的标签示例2. 使用 style 参数改变标签样式示例 二、标签组件lable更多用法示例1. 添加按钮动态修改标签文字2. 点击按钮动态改变标签内容、颜色、大小和粗细示例代码3. 添加开关组件动…

Angular基础学习(入门 --> 入坑)

目录 一、Angular 环境搭建 二、创建Angular新项目 三、数据绑定 四、ngFor循环、ngIf、ngSwitch、[ngClass]、[ngStyle]、管道、事件、双向数据绑定--MVVM 五、DOM 操作 &#xff08;ViewChild&#xff09; 六、组件通讯 七、生命周期 八、Rxjs 异步数据流 九、Http …

关于vue2+uniapp+uview+vuex 私募基金项目小程序总结

1.关于权限不同tabbar处理 uniapp 实现不同用户展示不同的tabbar(底部导航栏)_uniapp tabbar-CSDN博客 但是里面还有两个问题 一个是role应该被本地存储并且初始化 第二个问题是假设我有3个角色 每个角色每个tabbar不一样的&#xff0c;点击tabbar时候会导致错乱 第三个问题…

Windows11安装Docker Desktop教程

目录 一.安装前置步骤 ▐ 开启虚拟化 ▐ 安装WSL2 ▐ 安装Linux环境 二.Windows上安装Docker 一.安装前置步骤 ▐ 开启虚拟化 首先确保虚拟化的开启&#xff0c;打开任务管理器后查看&#xff1a; 确保图中的虚拟化是已启用&#xff0c;没有开启的需要通过BIOS进行开启&…

基于php的在线租房管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

MySQL-联合查询

1.简介 1.1为什么要使用联合查询 在数据设计时由于范式的要求&#xff0c;数据被拆分到多个表中&#xff0c;那么要查询⼀个条数据的完整信息&#xff0c;就 要从多个表中获取数据&#xff0c;如下图所⽰&#xff1a;要获取学⽣的基本信息和班级信息就要从学⽣表和班级表中获…

全网最全软件测试面试题(含答案解析+文档)

一、软件测试基础面试题 1、阐述软件生命周期都有哪些阶段? 常见的软件生命周期模型有哪些? 软件生命周期是指一个计算机软件从功能确定设计&#xff0c;到开发成功投入使用&#xff0c;并在使用中不断地修改、增补和完善&#xff0c;直到停止该软件的使用的全过程(从酝酿到…