浏览器上直接运行近 1000个 AI 模型!

8bf7eeb7cc590fcaf3d91e2fc2abde27.png

今天推荐的开源项目叫做 tansformers.js,这是一个不需要服务器端,能让你在浏览器上使用到自然语言处理、计算机视觉等 AI 能力的开源项目。由 xenova 开源,transformers.js 已经在 GitHub 上获得了超过 9.2K 颗星星。

65c06dfbc9fb7ea8f3d508099e758901.png

项目简介

transformers.js 是一个与 Hugging Face 的 transformers Python 库功能相当的 JavaScript 库。

它支持多种模态的常见任务,包括文本分类、摘要、翻译、文本生成;图像分类、对象检测和分割;自动语音识别和音频分类;以及零样本图像分类。

目前已经支持 941 个模型!huggingface.co/models?library=transformers.js

8ee43fb859aa81f273eb4feb4fb9bd2f.png

几个Demo

transformers.js 使用 ONNX Runtime 在浏览器中运行模型,这意味着你可以轻松地将你的预训练 PyTorch、TensorFlow 或 JAX 模型转换为 ONNX 格式,并在浏览器中使用它们。

这个库的最佳部分是,你可以使用类似于 Python 库的 pipeline API,使得运行模型变得异常简单。该开源项目提供了几个不同场景的 Demo:

图片检索

a5fbfc29a113c786e6e2084c969a8207.png

物体检测

f089500e1ff4ec2aafe3423455e055ce.png

抠图

3b109c1c7745bdc9e0c0ceba07b7203f.png

除此之外,如下是 Transformers.js 当前支持的所有任务和场景的列表:

cad3ce93e32be88e638f67fb6c06b5e0.png

ab6b0f2966bd981ba1a6bbe1e739bef4.png

7b91759365306d5fb25c6736c8cc6223.png

7692eee25c0979b268c0d3b74e287a91.png

如何部署

要在你的项目中使用 transformers.js,你可以通过 NPM 安装它,或者在没有任何打包工具的情况下,通过 CDN 或静态托管使用它。例如,使用 ES Modules,你可以这样导入库:

<script type="module">import { pipeline } from 'https://cdn.jsdelivr.net/npm/@xenova/transformers@2.17.2';
</script>

最后

transformers.js 打开了一个全新的可能性世界,让 AI 不再局限于服务器端。它的跨平台性和易用性使得开发者能够更快地将创意变为现实。无论你是机器学习的新手还是专家,transformers.js 都值得一试。

现在就去 GitHub 探索 transformers.js 的魔法吧!


推荐阅读

1. GitHub 上有什么好玩的项目?

2. 推荐 5 个本周很火的 GitHub 项目

3. 推荐 5 个近期火火火的 GitHub 项目

4.  推荐 5 个令人惊艳的 GitHub 项目

2c85513b5cb4358f3eda0d2f1ccd7727.png

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

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

相关文章

JVM如何确定方法调用

方法调用并不等同于方法执行&#xff0c;方法调用阶段唯一的任务就是确定调用哪一个方法&#xff0c;不涉及方法内部的具体运行过程。在程序运行时&#xff0c;进行方法调用是最普遍、最频繁的操作&#xff0c;但Class文件的编译过程中不包含传统编译中的连接步骤&#xff0c;一…

医学人工智能项目如何申请基金?

小罗碎碎念 本期推文面向的群体 青年教师有志硕博/博后 尤其适合一直认真追小罗推文的老师/同学&#xff0c;你们会发现自己在看这篇推文的时候&#xff0c;遇到自己领域的项目时&#xff0c;文思如泉涌&#xff0c;仿佛马上就能把本子写好&#xff0c;哈哈。&#xff08;运用…

命令词:引导行动的语言工具

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

App UI 风格打造独特体验

App UI 风格打造独特体验

Web前端小路线:探索与开发之旅

Web前端小路线&#xff1a;探索与开发之旅 Web前端开发&#xff0c;作为互联网技术的核心领域之一&#xff0c;吸引了无数热爱技术与创意的开发者。在这个充满挑战与机遇的领域中&#xff0c;如何规划一条适合自己的学习路线&#xff0c;成为了许多初学者和进阶者关注的焦点。…

通过Stream流对集合进行操作

Stream Api是JDK8提供的新特性&#xff0c;可以更为方便地对集合进行操作&#xff0c;比如我今天遇到的一个场景&#xff1a; 将本地的一个视频文件分成多块上传到Minio服务器&#xff0c;现在上传功能已经完成&#xff0c;需要调用minioClient对已经上传的文件重新合并成一个新…

8086汇编 add指令学习

ADD&#xff0c;是Intel x86平台的汇编加法指令&#xff0c;MEM代指操作数为内存或寄存器&#xff0c;REG代指操作数为寄存器&#xff0c;IMM代指立即数&#xff0c;SEG代指操作数为段寄存器。 形式和示例如下&#xff1b; ADD MEM8,REG8 ADD DS:[BXSI],AL ADD MEM16,R…

Centos7.9部署单节点K8S环境

Centos7.9部署单节点K8S环境 通过Centos extras镜像源安装K8S环境&#xff0c;优点是方便快捷&#xff0c;缺点是版本较低&#xff0c;安装后的版本为1.5.2。 1. 准备工作 关闭selinux [rootlocalhost ~]# cat /etc/selinux/config# This file controls the state of SELin…

【ARM Coresight Debug 系列 -- ARMv8/v9 Watchpoint 软件实现地址监控详细介绍】

请阅读【嵌入式开发学习必备专栏 】 文章目录 ARMv8/v9 Watchpoint exceptionsWatchpoint 配置信息读取Execution conditionsWatchpoint data address comparisonsSize of the data accessWatchpoint 软件配置流程Watchpoint Type 使用介绍WT, Bit [20]: Watchpoint TypeLBN, B…

vue技巧(十)全局配置使用(打包后可修改配置文件)

1、背景 vue打包目前主流用的有webpack和vite两种&#xff0c;默认用的webpack。&#xff08;二者的区别大家可以各自上网查&#xff0c;我没用过vite&#xff0c;所以不过多介绍&#xff09;vue通过webpack打包后&#xff0c;源码会被压缩&#xff0c;但一些关键配置可…

【新课程】PICO VR 交互开发指南

从PICO开始&#xff0c;迈向XR跨平台开发 Unity XR Interaction Toolkit &#xff08;简称XRI&#xff09;是一套跨平台的 XR 交互开发工具包&#xff0c;随着版本的更新与完善&#xff0c;逐渐获得了开发者的青睐。各 XR 平台逐步推荐开发者采用 XRI 作为首选的交互开发工具为…

Pytest框架中fixture功能详解

文章目录 1 定义 Fixture函数 2 Fixture 的函数参数 2.1 传入其他fixture函数作为参数 2.2 传入request对象参数 示例1&#xff1a;访问fixture的调用者 示例2&#xff1a;使用fixture的参数 3 Fixture 的作用域参数scope 3.1 scopeclass场景 3.2 scopesession场景 4…

SwiftUI 6.0(iOS 18)新容器视图修改器漫谈

概览 本届 WWDC 2024 观影正如火如荼的进行中&#xff0c;一片鸟语花香、枝繁叶茂的苹果树上不时结出几颗令人垂涎欲滴的美味苹果让秃头码农们欲罢不能。 如您所愿&#xff0c;在界面布局“利器” SwiftUI 这根蔓藤也长出不少喜人的果实&#xff0c;其中在 iOS 18.0 中新添加的…

rabbitMQ的简单使用

rabbitMQ的介绍 RabbitMQ是一个开源的消息代理和队列服务器&#xff0c;主要用于在不同的应用程序之间传递消息。它基于AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;协议&#xff0c;提供了一种可靠的方式来处理异步通信。RabbitMQ使用Erlang语言编写&…

springboot 整合redis问题,缓存击穿,穿透,雪崩,分布式锁

boot整合redis 压力测试出现失败 解决方案 排除lettuce 使用jedis <!-- 引入redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclus…

内存泄漏 内存溢出

概念 内存泄漏&#xff1a;是程序没有正确的释放已分配的内存&#xff0c;造成系统内存的浪费。内存泄漏很难发现&#xff0c;因为他不会直接导致程序崩溃&#xff0c;而是会慢慢降低程序的性能。 内存溢出&#xff1a;系统中存在无法回收的内存或使用的内存过多&#xff0c;…

【linux-imx6ull-定时器与中断】

目录 1. 前言2. Linux软件定时器2.1 内核频率选择2.2 重要的API函数2.3 Linux软件定时器的使用配置流程 4. Linux中断4.1 简单中断使用4.1.1 简要说明4.1.2 重要的API函数4.1.3 中断的简要配置流程 4.2. 中断的上半部和下半部4.2.1 tasklet实现下半部4.2.2 work实现下半部 1. 前…

pytorch 使用GPU加速常见的问题

pytorch如何使用gpu加速 print(torch.cuda.is_available()) # 设置gpu设备 device torch.device(cuda:0 if torch.cuda.is_available() else cpu) # net使用GPU net.to(device)# 数据copy到gpu inputData inputData.to(device)# 开始执行 ... net(inputData) ...两种方式&am…

MySQL数据操作与查询- 聚合函数和分组查询

一、聚合函数 聚合函数主要用来进行数据 汇总 。 1、sum 返回选取的某列的总和。 语法&#xff1a; select sum(字段名) from 表名 where 条件表达式 2、max 返回选取的某列的最大值。 语法&#xff1a; select max(字段名) from 表名 where 条件表达式 3、min 返…

【网络安全的神秘世界】AppScan安装及使用指南

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 https://www.hcl-software.com/appscan AppScan是一种综合型漏洞扫描工具&#xff0c;采用SaaS解决方案&#xff0c;它将所以测试功能整合到一个服务中&a…