如何解决使用割炬时慢速多处理
我有一个函数 const AntiSpam = require("./spam.js");
const cooldown = new Set();
client.on("message",async (message,member) => {
if (!message.member.hasPermission('ADMINISTRATOR')) {
if(message.author.bot) return;
if (!message.guild) return;
if(!message.guild.members.cache.get(client.user.id).hasPermission("ADMINISTRATOR")) return;
if(!message.member) return;
let spam = await db.fetch(`spamEngel_${message.guild.id}`)
if(!spam) return;
AntiSpam(client,message);
}
});
,平均需要9秒钟才能运行。但是,当我尝试使用多重处理对其进行并行化(甚至使用torch.multiprocessing)时,每个推理平均要花费20秒钟,为什么呢?
func
是一个推断函数,它接受func
并根据该患者的数据运行火炬模型进行推断。
patient_name
解决方法
请检查根据您提供的数据对模型体系结构的推断是否已经使用了大量的计算能力。这将使OS进程调度程序在每个进程之间切换,这需要花费更多时间。
此外,您每次都在函数内部加载模型。在进程之间复制数据对象总是比从磁盘读取数据对象更快(这是multiprocessing
的策略,或者是与torch.multiprocessing
一起共享模型的策略)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。