量化lstm为onnx遇到end值越界的解决方法
量化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值越界的解决方法相关推荐
- spring boot maven项目返回值乱码的解决方法
spring boot maven项目返回值乱码的解决方法 1.先看乱码效果: spring boot maven项目,返回值乱码,如下图: 控制台打印log乱码,如下图: 有swagger的话,sw ...
- Java中url传递中文参数取值乱码的解决方法
Java中url传递中文参数取值乱码的解决方法 参考文章: (1)Java中url传递中文参数取值乱码的解决方法 (2)https://www.cnblogs.com/liwenjuan/p/3211 ...
- 王者荣耀体验服服务器注册上限怎么办,王者荣耀体验服资格8月6日申请地址 2018体验服申请恶意值过高解决方法...
王者荣耀体验服资格8月6日申请地址 体验服申请恶意值过高解决方法,王者荣耀体验服(白名单)即将于2018年08月6日上午11:00开启资格申请!各位千万不要着急,先确保自己有资格就可以! 体验服可以体 ...
- Dynpro程序抬头信息要求多值输入的解决方法
具体要求如下,抬头中要求地点字段可以输入多值,有两种解决方法. 1.嵌套子屏幕,直接调用标准的select-options 大体思路可参考如上程序,但是就一个select-options,可以不用新 ...
- Jquery操作Cookie取值错误的解决方法
使用JQuery操作cookie时 发生取的值不正确,结果发现cookie有四个不同的属性,分享下错误的原因及解决方法. 使用JQuery操作cookie时 发生取的值不正确的问题: 结果发现coo ...
- MVC中提示错误:从客户端中检测到有潜在危险的 Request.Form 值的详细解决方法...
今天往MVC中加入了一个富文本编辑框,在提交信息的时候报了如下的错误:从客户端(Content="<EM ><STRONG ><U >这是测试这...&q ...
- 【小5聊】echarts基础之x轴name值显示不全解决方法
1.x轴刻度单位名称不显示完全 2.解决方法,grid的left和right值进行调整 grid: {left: '3%',right: '4%',bottom: '3%',containLabel: ...
- pytorch转caffe2 之 onnx转caffe2报错的解决方法 ValueError: Don't know how to translate op Unsqueeze
目标:将 pytorch模型 转为 onnx模型 再转为 caffe2模型,得到两个.pb文件 pytorch转onnx可通过torch.onnx._export函数实现. onnx转caffe2有两 ...
- 在程序中设置infopath中的整型等域值时出错解决方法
最近一直和infopath表单打交道,碰到的问题也比较多,刚刚就碰到一个在程序中修改infopath表单中域的内容时出错的问题,写出来与大家共享一下,我想这个问题,可能玩infopath的话,迟早会碰 ...
最新文章
- java并发订单号生成
- 设计模式(享元模式)
- 当你刷新当前Table时,刷新后如何回到你上一次所在位置呢?
- 本周NLP、CV、机器学习论文精选推荐
- iOS-英雄联盟人物展示
- VS编译器安装Eigen
- 谷歌搜索白痴出来特朗普 CEO解释:算法匹配是这样
- Python二级笔记(18,19合集知识点篇)
- caffe的调试技巧 和 使用split层
- mysql ---- 多表设计
- 常年“盘踞”数据库前五的 MongoDB,在中国有哪些新动向?
- VC++ 6.0如何创建与调用动态链接库
- 六大手机软件商店分析报告
- 中国科学院大学2019年高等代数考研试题
- 阅读文献Performance Gains in V2X Experiments Using Distributed Simulation in the Veins Framework
- 《Java语言程序设计与数据结构》编程练习答案(第三章)(三)
- Android自定义View之仿QQ运动步数进度效果
- 通过K-means对iris数据集进行处理 Kmeans聚类算法实例
- 【python逆向一把梭】pyinstaller打包的exe逆向一把梭
- 【Python机器学习预测分析算法实战五】最小角回归LARS