Matlab deep work designer生成的代码和结构设置不同,显示层未连接

weixin_45775093 2020-06-03 10:08:28
Matlab版本64位2020a,系统windows10.
在matlab官方示例中复制了网络结构部分的代码,(https://www.mathworks.com/help/d ... unfoldinglayer.html)

filterSize = 5;
numFilters = 20;
numHiddenUnits = 200;
numClasses = 10;

layers = [ ...
sequenceInputLayer(6,'Name','input')

sequenceFoldingLayer('Name','fold')

convolution2dLayer(filterSize,numFilters,'Name','conv')
batchNormalizationLayer('Name','bn')
reluLayer('Name','relu')

sequenceUnfoldingLayer('Name','unfold')
flattenLayer('Name','flatten')

lstmLayer(numHiddenUnits,'OutputMode','last','Name','lstm')

fullyConnectedLayer(numClasses, 'Name','fc')
softmaxLayer('Name','softmax')
classificationLayer('Name','classification')];

lgraph = layerGraph(layers);
lgraph = connectLayers(lgraph,'fold/miniBatchSize','unfold/miniBatchSize');

figure
plot(lgraph)



因为要把最后的分类换成回归,所以将代码导入deep work deginer准备修改最后一层再导出,但是导入之后生成的结构图没有连接完整,如图,报错原因:
层 'conv': 输入大小不匹配。此层的输入大小与预期的输入大小不同。
此层的输入:
来自 层 'fold' 输出 'out' (输出大小 6)
层 'fold': 未连接的输出。每个层输出必须连接到另一层的输入。
检测到未连接的输出:
输出 'miniBatchSize'
层 'unfold': 未连接的输入。每个层输入必须连接到另一个层的输出。
检测到未连接的输入:
输入 'miniBatchSize'

在deep work deginer中把输入输出连接好之后重新生成代码,把网络部分的代码进行了替换,运行后报错和上面一样,但plot(lgraph)绘制出的图又是连接好的。

求助:请问为什么代码导入后生成的结构图和官网中不一样?为什么在工具包中连接好的网络导出之后又报错没有连接好?
...全文
2104 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

兄弟,你找到原因了吗

all_is_right 2020-11-26
  • 打赏
  • 举报
回复 7
兄弟我终于成功了 训练的时候用lgraph作为最终的layer,net = trainNetwork(XTrain,YTrain,lgraph,options);就可以了
weixin_45775093 2020-06-03
  • 打赏
  • 举报
回复
这是plot(lgraph)出的图,但报错还是没有连接
weixin_45775093 2020-06-03
  • 打赏
  • 举报
回复
这是修改之后生成的代码
weixin_45775093 2020-06-03
  • 打赏
  • 举报
回复
这是导入之后显示的网络,fold和unfold没有连接完整
wz_Insomnia 2022-03-11
  • 举报
回复
@weixin_45775093 老哥,解决了吗,是什么问题

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧