当前位置: 首页 > news >正文

网站域名登陆地址泉州推广优化公司

网站域名登陆地址,泉州推广优化公司,网站开发与软件开发,微信2023新版下载首先不得不佩服大模型的强大之处,在算法移植过程中遇到einsum算子在ONNX中不支持,因此需要使用普通算子替代。参考TensorRT - 使用torch普通算子组合替代torch.einsum爱因斯坦求和约定算子的一般性方法。可以写出简单的替换方法,但是该方法会…

     首先不得不佩服大模型的强大之处,在算法移植过程中遇到einsum算子在ONNX中不支持,因此需要使用普通算子替代。参考TensorRT - 使用torch普通算子组合替代torch.einsum爱因斯坦求和约定算子的一般性方法。可以写出简单的替换方法,但是该方法会导致训练时还是推理都很慢,并且会消耗大量显存,造成显存溢出的问题。。因此采用提问文心一言,没想到居然真的回答正确了。当然替换需要验证,不是全对的。
1.einsum(delta, A, ‘b l d_in, d_in n -> b l d_in n’) 的替换,以下两个方法均可以

deltaA = torch.exp(einsum(delta, A, 'b l d_in, d_in n -> b l d_in n'))
deltaA = torch.exp(delta.unsqueeze(dim=3)*A.unsqueeze(dim=0).unsqueeze(dim=0))
deltaA = torch.exp(delta.unsqueeze(-1).repeat_interleave(A.shape[1], dim=-1) * A)

2.einsum(x, C[:, i, :], ‘b d_in n, b n -> b d_in’),以下两个方法均可以

    y = einsum(x, C[:, i, :], 'b d_in n, b n -> b d_in')y = (x*C[:, i, :].unsqueeze(dim=1)).sum(dim=2)y = torch.matmul(C[:, i, :], x.transpose(-1, -2)).squeeze(1)

3.einsum(delta, B, u, ‘b l d_in, b l n, b l d_in -> b l d_in n’),以下两个方法均可以

deltaB_u = einsum(delta, B, u, 'b l d_in, b l n, b l d_in -> b l d_in n')
deltaB_u1 = delta.unsqueeze(dim=3)*B.unsqueeze(dim=2)*u.unsqueeze(dim=3)

下述方法是提问文心一言的办法,注意需要将答案的结果和einsum的结果进行对比,采用np.testing.assert_allclose(deltaB_u.numpy(),deltaB_u1.numpy(),rtol=1e-05,atol=1e-05)和print(deltaA.equal(deltaA_manual))均可以。

import torch
import numpy as np
from einops import rearrange, repeat, einsum
# 给定的张量
delta = torch.ones([1, 3, 2])
A = torch.ones([2, 4])
deltaA = torch.exp(einsum(delta, A, 'b l d_in, d_in n -> b l d_in n'))
deltaA1 = torch.exp(delta.unsqueeze(dim=3)*A.unsqueeze(dim=0).unsqueeze(dim=0))
deltaA_manual = torch.exp(delta.unsqueeze(-1).repeat_interleave(A.shape[1], dim=-1) * A)
np.testing.assert_allclose(deltaA.numpy(),deltaA1.numpy(),rtol=1e-05,atol=1e-05)# 扩展 delta 的维度,以便它可以与 A 进行广播(broadcast)
# 这里我们使用 unsqueeze 和 repeat_interleave 来扩展维度
delta_expanded = delta.unsqueeze(-1).repeat_interleave(A.shape[1], dim=-1)
# 执行逐元素的乘法,然后取指数
deltaA_manual = torch.exp(delta_expanded * A)# 注意:deltaA_manual 的形状是 [1, 3, 2, 4],这与 einsum 的输出形状一致
print(deltaA.equal(deltaA_manual))
print(deltaA1.equal(deltaA_manual))

请添加图片描述
请添加图片描述
请添加图片描述

http://www.yayakq.cn/news/170447/

相关文章:

  • 网站建设做网站撰写网站策划书
  • 佛山快速建站哪家服务专业怎么做游戏推广网站
  • 免费的网站app下载定制柜
  • 好的外贸网站特点网站需要的栏目和内容
  • 做门户网站最重要的是什么在哪个网站上做外贸好
  • 网站中flash怎么做的php做的商城网站设计论文
  • 宁夏网站推广义乌正规自适应网站建设首选
  • 做商贸网站微信小程序教程
  • 怎么看一个网站是谁做的中山网站建设的公司
  • 公司网站有哪些合肥网站建设政务区
  • 嘉兴建设公司网站全国最有实力的信息网络公司排名
  • 建设国外网站做一个公司网站一般需要多少钱
  • 强大的网站小红书推广模式
  • 东营网签查询系统官方网站温州集团网站建设
  • 怎么做页游网站运营做好网站建设的重要性
  • 做外贸客户要求看网站关东建设有限公司网站
  • 网站建设职业主要做什么杭州市建设工程交易中心网站
  • 团购网站策划网页制作免费模板
  • 东莞大岭山网站建设西安360免费做网站
  • 网站视频如何下载学计算机网站建设
  • 金华手机模板建站网站搭建需要服务器吗
  • 河口建设局网站wordpress外卖
  • 成都网站建设全平台移动端网站建站视频教程
  • 做pc端网站要成本么怎样做企业文化网站
  • 天津市工程建设交易网站查汗国网站设计开发工程师
  • 网站美工设计流程海曙区网站开发培训
  • 二手交易平台 网站开发输入网站查看空间
  • 牛视频网站建设wordpress客户中心
  • 网站设计的性能需求网站怎么吸引流量
  • 网站运营是做啥的网络舆情监控系统