【Matlab序列+矩阵,双输入深度学习网络】

之前整理过Matlab序列+序列、序列+图像双输入的网络,在本人闲鱼主页下都可以找到。近来发现,Matlab对于矩阵的输入好像是不太一样的。起初是想将序列+图像的网络中,直接把图像输入层改为通道1就可以,实际上是行不通的。这要归咎于这个arrayDatastore函数(在双输入网络中,序列和矩阵的数据都必须经过arrayDatastore转化,图像可以用imageDatastore函数)。

但方法总比困难多的,好在Matlab 2023之后的版本引入了3d卷积这个层(image3dInputLayer)。是的,用3d卷积是比较容易处理矩阵的,虽然这有些大材小用,但是方便第一。

网络:如下是本程序构建的网络,一端输入1x100的序列,一端输入100x100的矩阵。网络可以自己写代码构建,也可以用Matlab里的深度学习app搭积木。个人非常建议app搭积木,真的非常方便,app里搭完也可以导出成代码。

这个数据是直接rand生成的,在源代码里也有。为了区分两类样本,制造了些差异。因只是示例作用,数据弄得很简单。

数据:10条序列数据,1x100。10条矩阵数据,100x100。序列和矩阵一一对应,8条训练,2条测试。

在整理数据的时候是非常令人头疼的,稍有不慎就会报错:输入维度不匹配,网络期待的输入是什么什么样,而数据格式是什么什么样。本人也在这卡了很久,矩阵reshape成样本数x100x100x1后,输入的时候总提示我的数据是1x100x1而网络需要1x100x100,困惑了近一小时。于是想到了用3d卷积层,矩阵reshape成样本数x100x100x1,就终于可以输入了。之前一直没用过3d卷积层,真没想到处理单通道的矩阵要用上这个大零件了,也许Matlab的本意就是让大家这样用?如果大家有了能用2d卷积层调通的方法,也可以评论区分享给大家~

训练过程:

写在最后:整理确实花了些时间,也是工作之余晚上熬夜来整理的- -希望大家原谅本人没有公开代码。码农不易,所有的源代码和数据已经放在了闲鱼上,价格低廉59元。如果大家不想花钱也可以仔细看一下以上的介绍,有基础的话自己应该也可以琢磨出来,祝大家科研顺利!

【闲鱼链接】:https://m.tb.cn/h.gKorDgG?tk=5i693hBUyQm CZ3452

如果链接失效,也可以闲鱼搜索耐心的等待5283,然后点用户,就可以找到主页下的程序了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值