错误编译ResNet50深度学习HDL的工具箱支持包万博1manbetx

80(30天)
你好,
我有一个pretrained ResNet50进口DAGNetwork对象。matlab的神经网络是正常工作。然而,我想实现它在一个FPGA和编译时我得到四大错误。神经网络使用importTensorFlowNetwork进口,我试图与深度学习产生高密度脂蛋白HDL工具箱为英特尔FPGA和SoC设备支持包(我能够实现连续神经网络使用SeriesNetwork对象和这个工具):万博1manbetx
错误在dnnfpga.apis.Workflow /编译
错误在generate_HDL_from_NN(第18行)
hW.compile;
引起的由:
“conv2_block1_3_conv”:输入大小不匹配。输入层的尺寸不同于预期的输入的大小。
输入这一层:
层“conv2_block1_0_conv”(8号(S)×256 (C) (S)××1 (B))
“conv2_block1_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv2_block2_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv2_block3_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv3_block1_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv3_block2_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv3_block3_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv3_block4_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv4_block1_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv4_block2_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv4_block3_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv4_block4_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv4_block5_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv4_block6_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv5_block1_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv5_block2_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv5_block3_add”:无关的输入。每一层的输入必须连接到另一层的输出。
你有什么建议解决这个问题?
提前谢谢你
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
软件版本:
深度学习HDL工具箱支持英特尔FPGA和SoC设备2万博1manbetx1.2.4包
Matlab R2021b更新6 (9.11.0.2207237)
Ubuntu 20.04
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

答案(2)

王晨
王晨 2023年4月16日22:10
编辑:王晨 2023年4月16日在二二12
嗨,鲁本,
Resnet50网络,你有试过下载深度学习工具箱ResNet-50网络模型支持pacakge ?万博1manbetxResnet50网络在此支持包一起作用于深层学习HDL工具万博1manbetx箱:
还有一个ResNet-18网络支持pacakge:万博1manbetx
您导入的网络使用importTensorFlowNetwork,你能联系MathWorks客户支持和客户支持和共享网络吗?万博1manbetx它看起来像网络不正确地构建在MATLAB。错误消息“ 无关的输入。每一层的输入必须连接到另一层的输出” MATLAB是通用的网络连接错误。他们不是针对FPGA的目标。
谢谢,
6个评论
王晨
王晨 2023年4月17日20:47
嗨,鲁本,
这将是伟大的如果你能分享你的进口网络对我们来说,我们可以看看它,看看这个问题的原因是什么。你能联系MathWorks客户支持和客户支持和共享网络吗?万博1manbetx
或者,正如Sivylla建议,您可以添加所需的额外层MATLAB内置ResNet50或ResNet18,利用MATLAB工具像深网络设计师:
谢谢,

登录置评。


鲁本
鲁本 2023年4月17日在21:09
神经网络的大小超过5 mb的限制。请找到“神经网络”。垫”以下下载链接: NN.mat
5个评论
鲁本
鲁本 2023年5月3日7点15分
你好 @Wang陈 ,
我有进口SaveModel作为layerGraph(在这个例子中“层”)对象和我试图合并两层:
% % 0填充层为groupedConvolution2dLayer层合并
% conv副本图层,填充大小变化
conv = layers.Layers (3);
conv.PaddingSize = [layers.Layers (2)。前layers.Layers (2)。底部layers.Layers (2)。左layers.Layers(2)对不对);
%替代conv层和删除填充层
层= replaceLayer(层,layers.Layers (3)。名字,conv);
层= removeLayers(层,layers.Layers (2) . name);
%连接输入层与conv层
层= connectLayers(层,layers.Layers (1)。名字,layers.Layers (2) . Name)
NN = assembleNetwork(层);
这样做之后,我建立了使用assembleNetwork DAGNetwork对象和剖析后 analyzeNetwork 没有错误/警告。
然而,我得到以下错误当我试着编译与hW.compile之前:
错误使用dnnfpga.compiler.codegenfpga
无效的网络。
错误在dnnfpga.apis.Workflow / compileNetwork
错误在dnnfpga.apis.Workflow /编译
错误在generate_HDL_from_NN(第18行)
hW.compile;
错误在importTensorFlowNN(36行)
hW = generate_HDL_from_NN (nn、ToolName路径、厂商、平台、ip、界面,用户通过);
引起的由:
“conv2_block1_3_conv”:输入大小不匹配。输入层的尺寸不同于预期的输入的大小。
输入这一层:
层“conv2_block1_0_conv”(8号(S)×256 (C) (S)××1 (B))
“conv2_block1_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv2_block2_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv2_block3_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv3_block1_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv3_block2_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv3_block3_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv3_block4_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv4_block1_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv4_block2_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv4_block3_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv4_block4_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv4_block5_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv4_block6_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv5_block1_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv5_block2_add”:无关的输入。每一层的输入必须连接到另一层的输出。
“conv5_block3_add”:无关的输入。每一层的输入必须连接到另一层的输出。
找到nn int这个链接 NN_without_padding.mat
都是层合并正常吗?

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!