Canmv k230 AI案例2——RNN时间序列预测 初版

RNN模型与转换

在鸽了很久之后,开始更新RNN的案例,相比在图像处理中的CNN,RNN应用在时间序列预测;自然语言处理,如翻译等领域。

完整的内容可能包括:
1)RNN模型的建立
2)RNN模型的转换
3)RNN模型的应用——时间序列预测
4)开发中遇到的问题

RNN 模型建立与onnx转换

环境部署,请参阅
CanMV K230 开发环境部署记录

在文件夹中新建
在这里插入图片描述

新建RNN模型

from tensorflow import keras
from tensorflow.keras import layers
inputs = keras.Input(shape=(1,10))
x = layers.LSTM(2)(inputs)
outputs = layers.Dense(1)(x)
model = keras.Model(inputs, outputs)
model.summary()

测试输出

import numpy as np
data=np.ones((1,1,10))
data
result=model.predict(data)
result

模型转换为onnx,也能转换为tflite,有点麻烦忘了方法了。。。

import tensorflow as tf
import os
import onnx
#需要先使用model.save方法保存模型
model.save('model')
#调用tf2onnx将上一步保存的模型导出为ONNX
os.system("python3 -m tf2onnx.convert --saved-model model --output RNN.onnx --opset 13")

检测模型

import onnx
onnx_model = onnx.load("./RNN.onnx")
check = onnx.checker.check_model(onnx_model)
print('Check: ', check) # 返回 Check:  None 为成功

修改输入输出的第一个维度,因为转换中会出错

import onnx
onnx_model = onnx.load("./RNN.onnx")
onnx_model.graph.input[0].type.tensor_type.shape.dim[0].dim_value = 1
onnx_model.graph.output[0].type
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值