量化lstm为onnx遇到end值越界的解决方法


文章目录

  • 量化lstm为onnx遇到end值越界的解决方法
    • 问题
    • 解决

问题

量化lstm模型时:出现问题

解决

查看代码:

class LSTM_Model(nn.Module):def __init__(self, input_dim, hidden_dim, layer_dim, output_dim):super(LSTM_Model, self).__init__()  # 初始化父类中的构造方法self.hidden_dim = hidden_dimself.layer_dim = layer_dim# 构建LSTM模型self.lstm = nn.LSTM(input_dim, hidden_dim, layer_dim, batch_first=True)# 全连接层self.fc = nn.Linear(hidden_dim, output_dim)def forward(self, x):# 初始化隐层状态全为0# (layer_dim, batch_size, hidden_dim)h0 = torch.zeros(self.layer_dim, x.size(0), self.hidden_dim).requires_grad_().to(device)# 初始化cell statec0 = torch.zeros(self.layer_dim, x.size(0), self.hidden_dim).requires_grad_().to(device)# 分离隐藏状态,以免梯度爆炸out, (hn, cn) = self.lstm(x, (h0.detach(), c0.detach()))# 只需要最后一层隐层的状态out = self.fc(out[:, -1, :])return out

原因:不能出现-1
更改代码:

class LSTM_Model(nn.Module):def __init__(self, input_dim, hidden_dim, layer_dim, output_dim):super(LSTM_Model, self).__init__()  # 初始化父类中的构造方法self.hidden_dim = hidden_dimself.layer_dim = layer_dim# 构建LSTM模型self.lstm = nn.LSTM(input_dim, hidden_dim, layer_dim, batch_first=True)# 全连接层self.fc = nn.Linear(hidden_dim, output_dim)self.Softmax = nn.Softmax(dim=1)def forward(self, x):# 初始化隐层状态全为0# (layer_dim, batch_size, hidden_dim)h0 = torch.zeros(self.layer_dim, x.size(0), self.hidden_dim).requires_grad_().to(device)# 初始化cell statec0 = torch.zeros(self.layer_dim, x.size(0), self.hidden_dim).requires_grad_().to(device)# 分离隐藏状态,以免梯度爆炸out, (hn, cn) = self.lstm(x, (h0.detach(), c0.detach()))# 只需要最后一层隐层的状态b, c, d = out.shapeout = self.fc(out[:, c - 1, :])out = self.Softmax(out)return out

成功解决

量化lstm为onnx遇到end值越界的解决方法相关推荐

  1. spring boot maven项目返回值乱码的解决方法

    spring boot maven项目返回值乱码的解决方法 1.先看乱码效果: spring boot maven项目,返回值乱码,如下图: 控制台打印log乱码,如下图: 有swagger的话,sw ...

  2. Java中url传递中文参数取值乱码的解决方法

    Java中url传递中文参数取值乱码的解决方法 参考文章: (1)Java中url传递中文参数取值乱码的解决方法 (2)https://www.cnblogs.com/liwenjuan/p/3211 ...

  3. 王者荣耀体验服服务器注册上限怎么办,王者荣耀体验服资格8月6日申请地址 2018体验服申请恶意值过高解决方法...

    王者荣耀体验服资格8月6日申请地址 体验服申请恶意值过高解决方法,王者荣耀体验服(白名单)即将于2018年08月6日上午11:00开启资格申请!各位千万不要着急,先确保自己有资格就可以! 体验服可以体 ...

  4. Dynpro程序抬头信息要求多值输入的解决方法

    具体要求如下,抬头中要求地点字段可以输入多值,有两种解决方法. 1.嵌套子屏幕,直接调用标准的select-options  大体思路可参考如上程序,但是就一个select-options,可以不用新 ...

  5. Jquery操作Cookie取值错误的解决方法

    使用JQuery操作cookie时 发生取的值不正确,结果发现cookie有四个不同的属性,分享下错误的原因及解决方法. 使用JQuery操作cookie时 发生取的值不正确的问题:  结果发现coo ...

  6. MVC中提示错误:从客户端中检测到有潜在危险的 Request.Form 值的详细解决方法...

    今天往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误:从客户端(Content="<EM ><STRONG ><U >这是测试这...&q ...

  7. 【小5聊】echarts基础之x轴name值显示不全解决方法

    1.x轴刻度单位名称不显示完全 2.解决方法,grid的left和right值进行调整 grid: {left: '3%',right: '4%',bottom: '3%',containLabel: ...

  8. pytorch转caffe2 之 onnx转caffe2报错的解决方法 ValueError: Don't know how to translate op Unsqueeze

    目标:将 pytorch模型 转为 onnx模型 再转为 caffe2模型,得到两个.pb文件 pytorch转onnx可通过torch.onnx._export函数实现. onnx转caffe2有两 ...

  9. 在程序中设置infopath中的整型等域值时出错解决方法

    最近一直和infopath表单打交道,碰到的问题也比较多,刚刚就碰到一个在程序中修改infopath表单中域的内容时出错的问题,写出来与大家共享一下,我想这个问题,可能玩infopath的话,迟早会碰 ...

最新文章

  1. java并发订单号生成
  2. 设计模式(享元模式)
  3. 当你刷新当前Table时,刷新后如何回到你上一次所在位置呢?
  4. 本周NLP、CV、机器学习论文精选推荐
  5. iOS-英雄联盟人物展示
  6. VS编译器安装Eigen
  7. 谷歌搜索白痴出来特朗普 CEO解释:算法匹配是这样
  8. Python二级笔记(18,19合集知识点篇)
  9. caffe的调试技巧 和 使用split层
  10. mysql ---- 多表设计
  11. 常年“盘踞”数据库前五的 MongoDB,在中国有哪些新动向?
  12. VC++ 6.0如何创建与调用动态链接库
  13. 六大手机软件商店分析报告
  14. 中国科学院大学2019年高等代数考研试题
  15. 阅读文献Performance Gains in V2X Experiments Using Distributed Simulation in the Veins Framework
  16. 《Java语言程序设计与数据结构》编程练习答案(第三章)(三)
  17. Android自定义View之仿QQ运动步数进度效果
  18. 通过K-means对iris数据集进行处理 Kmeans聚类算法实例
  19. 【python逆向一把梭】pyinstaller打包的exe逆向一把梭
  20. 【Python机器学习预测分析算法实战五】最小角回归LARS

热门文章

  1. 编译原理(文法、符号表)
  2. 阅读名著《鼠疫》读后感4000字
  3. Vitis-Ai 3.0 板卡镜像制作、模型量化编译教程
  4. teablue数据分析_大数据时代来临,再不抓住风口你就out了
  5. 高德、腾讯、百度实时路况切片地址
  6. LDAP+LAM搭建
  7. 华北理工大学计算机考研真题,2021华北理工大学考研历年真题复习资料
  8. 存储过程中加CHAR(39)是什么意思
  9. 运维的进击“转型”:阿里业务连续性管理最佳实践
  10. python命令行无法使用退格键、方向键