资源分配
环境:Vivado2019.2。
Part:xcku040-ffva1156-2-i,内嵌DSP个数 1920个,BRAM 600个也就是21.1Mb。
说明:通过识别加高斯白噪声的正弦波、余弦波、三角波较简单的实例来利用FPGA实现一维CNN网络,也就是将下列数据传输至FPGA,识别出下面哪些是正弦波、余弦波、三角波,通过简单实例实践,从而实现更复杂的网络。 主要是实现CNN网络的搭建 ,本文因为追求速度利用了大量的DSP,后期加入复杂网络进行DSP复用。
第一节: 基于FPGA的一维卷积神经网络CNN的实现(一)框架
第二节: 基于FPGA的一维卷积神经网络CNN的实现(二)资源分配
文章目录
再次认识整个网络,第一层卷积核、第一次池化是串行执行,第一层池化和第二层卷积是并行执行,第二层池化、第三层卷积、全连接是并行执行。
接下来就各层分析以下资源消耗情况
一、DSP资源分配
我们知道,卷积主要做的是乘加运算,FPGA加速主要是通过内嵌的DSP资源去做这些乘法。
DSP? 啥
①27bit预加器(加法器)
②27*18乘法器
③可以做加(减)法器,累加(减)器,逻辑运算(与或非)
④模式探测器,主要实现带掩膜的数据比较,上下溢出检测,记到一定数据对结果进行重置功能。
⑤数据选择器
例如如下模型,卷积核通道为1,卷积核元素为3个,需要的乘法器为3个,也就是需要3个DSP。
我们所设计的网络
1.第一层卷积
第一层卷积:1通道,6个卷积核,卷积核内的元素为5,卷积所需要的的乘法器为1×6×5=30,那幺我们所需的DSP资源为1×6×5=30个。
2.第二层卷积
第二层卷积:6通道,16个卷积核,卷积核内的元素为5,卷积所需要的的乘法器为6×16×5=480,那幺我们所需的DSP资源为6×16×5=480个。
3.第三层卷积
第三层卷积:16通道,16个卷积核,卷积核内的元素为5,卷积所需要的的乘法器为16×16×5=1280,那幺我们所需的DSP资源为16×16×5=1280个。
4、全连接层
全连接层:理论上是将第三层卷积的16条通道25点的结果拼接成一条400点的数据输出,然后分别和3条400点的权重相乘相加得到3个结果R1、R2、R3,但是这样串行的去相乘相加无疑很耗时间。
但是我们用的可是可以并行的FPGA,出来的并行数据为何要连接成串行计算呢?
我们何不把权重(事先存储的参数数据,想咋存都由你,或者外部传输进去的数据,想怎幺传还是由你)也构造成这种形式,让地三层卷积16通道结果出来的同时就立马可以分别和3个通道对应的权重相乘相加,这不就达到了并行的结果。
这样所需要的的乘法器为就为16×3,也就是DSP所需16×3=48个。
层 | 层级特征 | 使用DSP个数 |
---|---|---|
第一层卷积 | 1通道、6个卷积核、卷积核元素为5 | 1×6×5=30 |
第二层卷积 | 6通道、16个卷积核、卷积核元素为5 | 6×16×5=480 |
第三层卷积 | 16通道、16个卷积核、卷积核元素为5 | 16×16×5=1280 |
全连接 | 第三层16通道卷积的输出,分别乘加3个16通道权重 | 16×3=48 |
总 | 1838 |
对比一下资源使用表:
DSP资源没这幺多的时候,就考虑复用。
二、BRAM资源
每层所需的权重参数本设计是暂存在ROM中,而ROM所占用的资源为BRAM资源,后续复杂网络,权重参数可能会通过PCIE总线进行传输。
所谓的权重参数就是每个卷积核、每条卷积核相应的偏置,全连接参数、偏置。
1.第一层卷积
第一层通道为1,卷积核个数为6,卷积核元素为5。那幺第一层卷积参数就为6×5=30,别忘了每个卷积最后的结果都会加一个偏置,也就是一条卷积核卷积完成后的结果上整体去加上这个偏置,所以偏置个数为6,那幺第一层所需的参数为6×5+6=36。
比如该设计的第一层的1通道16个卷积核,卷积核元素个数为5的参数:
-0.41392267 -0.37628385-0.38678840 -0.10021902-0.42755467 0.46177748 0.47878936-0.0118410990.36656979-0.33966425 0.19130668 0.14565417-0.17707989 0.26029965 0.29681087 -0.29763651 -0.37699795 0.35222396 -0.20345914-0.37277707 -0.36939585 0.19159849-0.23786691 -0.37849170-0.44727486 -0.075469948 -0.18664657-0.30474073 -0.23001774-0.098302089
比如该设计的第一层6个卷积核对应的偏置参数:
-0.16858324-0.25512469-0.27672836-0.195295390.451466800.46845901
2.第二层卷积
第二层通道为6,卷积核个数为16,卷积核元素为5。那幺第二层卷积参数就为6×16×5=480,偏置个数为16,那幺第二层所需的参数为6×16×5+16=496。
比如该设计的第二层的6通道16个卷积核,卷积核元素个数为5参数:
val(:,:,1) = -0.1547 0.2032 0.1963 -0.1448 -0.1131 0.1735 0.1296 0.1969 0.2054 -0.0226 -0.0928 -0.0498 0.2513 0.0210 -0.0890 0.0415 -0.0431 0.1257 0.1251 0.1287 0.0116 0.1061 -0.1738 0.1131 -0.0005 -0.1320 0.0712 0.0488 0.0231 0.0075 val(:,:,2) = 0.1026 -0.0004 0.0034 -0.0461 0.1522 -0.1177 -0.0905 0.0413 -0.1417 -0.1348 0.0588 0.0095 0.0238 -0.0664 -0.1272 -0.0614 0.0279 -0.1217 -0.0029 0.0752 0.0962 -0.1873 0.0188 -0.1346 0.0241 -0.1899 -0.1165 -0.0286 0.1052 0.1000 val(:,:,3) = -0.2075 0.0816 -0.1127 0.0045 -0.0761 0.2506 0.2455 -0.0971 -0.0761 -0.0129 0.2404 -0.0074 0.0966 -0.0890 -0.0007 0.0926 0.1140 0.1104 -0.0333 0.0803 -0.0943 0.0773 0.1850 0.0859 -0.0638 -0.1796 -0.0393 -0.0565 -0.1135 -0.0263 val(:,:,4) = -0.0133 -0.0443 -0.0063 -0.0984 0.0493 0.1532 0.1724 -0.0733 -0.0340 -0.0326 -0.0105 0.1516 -0.0407 -0.0529 -0.0170 -0.1523 0.0605 -0.0966 -0.0619 -0.1496 -0.1155 -0.0049 -0.1252 0.1687 0.2154 -0.1118 -0.0710 -0.0020 0.0922 0.2124 val(:,:,5) = -0.0509 0.0435 -0.0144 0.1848 0.0542 0.2265 0.0743 0.1912 0.0046 -0.0996 -0.0427 -0.1315 -0.0471 0.0246 -0.0847 0.1970 -0.1339 -0.1562 -0.0466 0.1271 -0.1135 -0.0592 -0.1675 0.0143 0.0434 0.0487 -0.1833 0.0461 0.1186 -0.1582 val(:,:,6) = -0.0779 0.1322 0.2086 0.1222 0.0509 -0.1968 -0.1623 0.0085 -0.0786 0.0393 0.0522 -0.0438 -0.1044 -0.0294 -0.0912 0.1010 0.2230 0.1075 0.0100 -0.0050 0.1049 0.1498 0.0103 0.1068 0.1174 -0.0630 0.1601 -0.0098 0.1374 0.2107 val(:,:,7) = 0.0782 -0.0438 -0.1652 0.0035 0.0205 0.2311 0.0875 -0.1125 0.0758 0.1435 -0.0878 0.0090 0.0917 -0.1049 -0.1181 0.1242 -0.0596 -0.0068 0.1177 -0.0373 0.0162 0.0092 -0.1835 -0.0169 -0.0970 -0.0093 -0.0643 0.1495 0.1413 0.0363 val(:,:,8) = 0.1482 -0.1471 0.0542 0.0859 -0.1110 -0.0803 0.1438 0.0147 -0.0928 0.0743 0.1344 0.1544 0.1804 0.1789 0.1898 -0.0955 -0.1667 -0.1229 -0.2301 -0.0559 0.1493 -0.1870 -0.0373 -0.0948 0.0036 -0.0054 -0.1074 0.0519 0.0120 -0.1034 val(:,:,9) = 0.0590 0.0746 -0.1623 0.0310 0.5379 0.1085 -0.0050 -0.1275 -0.0404 0.1794 -0.0571 0.0902 0.1722 -0.0147 0.1321 0.0155 -0.0003 -0.1564 0.1006 -0.0344 0.1347 0.0920 -0.0719 -0.0287 -0.1190 -0.1014 0.0934 0.0186 -0.1601 -0.1939 val(:,:,10) = -0.2035 0.0999 -0.1322 0.0682 -0.1048 0.0995 -0.0815 0.1874 -0.1160 0.0260 -0.1675 -0.1447 -0.1530 0.0755 0.0486 -0.0879 -0.1178 -0.0372 -0.0689 -0.1216 -0.1669 -0.0752 0.1888 0.0595 -0.0050 0.0705 0.0905 -0.0413 0.1929 0.2123 val(:,:,11) = -0.0955 0.0658 -0.1620 -0.1087 0.0680 0.2258 0.0300 0.1886 -0.0921 -0.0557 0.1444 0.2510 0.1219 -0.0504 0.1861 -0.1379 0.0132 -0.0342 -0.1072 0.0732 -0.1169 -0.0613 -0.0702 -0.0899 0.0119 0.0052 -0.1169 -0.0318 -0.0550 0.1045 val(:,:,12) = 0.0427 -0.1520 -0.1143 0.0906 0.0012 0.1343 -0.0920 0.1269 0.2326 -0.0352 0.1491 -0.0491 0.0240 0.1408 0.2117 -0.1461 -0.0904 -0.0562 0.1058 -0.1816 -0.1743 -0.1477 0.0440 -0.0306 0.0281 0.0376 0.0546 -0.1762 0.1463 -0.0549 val(:,:,13) = 0.0388 -0.0922 0.0928 0.2161 -0.0026 -0.0745 -0.0247 0.0622 0.1282 -0.1368 0.1207 -0.0654 -0.0275 0.0763 -0.0236 0.0025 0.0647 0.0925 0.1709 -0.0178 0.1661 0.2081 0.2127 0.1999 -0.0897 0.2426 0.2030 0.1917 0.1966 0.0323 val(:,:,14) = -0.0539 0.0233 0.0674 -0.0673 0.0012 0.2553 0.0010 0.0550 -0.0045 0.2548 0.1157 0.1743 0.0559 0.0050 0.2136 -0.1661 0.1464 -0.0778 -0.0510 -0.1443 -0.1775 0.1052 -0.0368 -0.1283 0.0468 0.1562 0.0844 -0.1260 -0.0319 -0.1913 val(:,:,15) = 0.0088 -0.0439 0.1869 0.2156 0.0045 -0.0056 -0.1742 -0.0575 -0.0640 0.1588 -0.1746 0.0565 -0.1516 -0.1399 -0.1901 -0.0961 0.1196 0.0038 -0.1159 0.0634 0.0062 0.1950 0.1605 -0.0952 0.1356 0.2200 0.1404 0.1234 0.1719 -0.1164 val(:,:,16) = -0.0263 -0.0728 -0.0043 0.1152 0.2091 0.1518 0.1548 0.0271 0.1760 -0.0435 0.1513 0.1026 0.0266 0.0744 0.2038 0.2373 -0.0509 0.0985 0.2076 0.1432 0.1513 0.0789 0.1683 0.0555 -0.1111 0.0974 -0.0354 -0.0795 0.0350 0.0588
第二层16个卷积核对应的偏置:
0.23936687-0.106618330.152715370.0610773860.016900102-0.0697503830.118628570.0835819990.0814154820.034861937-0.032691609-0.0222878900.025896503-0.0858854950.0359653380.23867875
3.第三层卷积
第三层通道为16,卷积核个数为16,卷积核元素为5。那幺第二层卷积参数就为16×16×5=1280,偏置个数为16,那幺第三层所需的参数为16×16×5+16=1296。
比如该设计的第三层的16通道16个卷积核,卷积核元素个数为5参数:
val(:,:,1) = -0.0300 0.0059 0.0910 0.0358 0.0334 -0.0742 0.0914 0.0439 0.0247 -0.0544 -0.0398 -0.0362 -0.0330 0.0634 0.0675 -0.0858 0.0750 -0.0045 -0.0618 -0.0959 -0.0090 -0.0846 -0.0634 0.0602 -0.0818 -0.0337 0.0238 0.0320 0.0828 0.0617 0.0066 0.0813 0.0713 0.0830 -0.1103 -0.0977 -0.0097 -0.0735 -0.1122 -0.0822 -0.0529 -0.0054 -0.0204 0.0529 0.0055 0.0368 -0.0193 0.0703 -0.0231 0.0488 0.1028 -0.0910 -0.0572 0.0877 -0.0683 -0.0951 0.0384 -0.0784 0.1030 -0.0543 -0.0076 -0.0692 -0.0111 -0.0090 -0.1038 -0.0101 0.0348 -0.0650 -0.0731 0.0312 0.0617 -0.0485 0.0893 0.0533 -0.0878 -0.1151 -0.0369 0.0463 -0.0897 0.0195 val(:,:,2) = 0.0641 -0.0588 0.1316 0.0727 -0.0295 -0.0841 -0.0773 -0.0449 -0.0536 -0.0172 0.0094 0.1279 0.1216 -0.0060 -0.0594 -0.0335 -0.0194 -0.0694 0.1204 -0.0149 -0.0271 -0.0577 0.0736 0.0085 0.1281 0.0555 -0.0624 -0.0687 0.0265 -0.1115 -0.0136 0.1482 0.0274 0.1024 0.1446 0.1067 -0.0112 0.0499 0.0713 0.1445 0.0596 0.0408 -0.0414 -0.0581 0.1377 -0.0766 0.1030 0.0912 0.1598 -0.0158 0.0247 0.0604 0.0507 0.0489 0.0257 0.0949 0.0817 0.0412 0.1432 0.1386 -0.0829 0.0827 -0.0143 -0.0725 0.1077 0.1112 0.0524 0.1122 0.1327 0.0742 0.0612 0.0809 -0.0110 -0.0770 -0.0872 0.0663 0.0551 -0.0028 -0.0466 -0.0694 val(:,:,3) = 0.1621 0.1361 0.1264 0.0486 0.1578 0.0686 -0.0030 0.0562 0.0578 -0.0606 0.1117 -0.0091 0.0875 0.0292 0.0210 -0.0238 0.0865 0.0586 0.0414 0.0604 0.0991 0.0854 0.0122 0.1483 0.0661 0.0067 -0.1624 -0.1576 -0.0880 -0.0573 0.0110 0.0292 0.1067 0.0781 -0.0308 0.0861 0.1249 0.1486 -0.0215 -0.0297 0.1563 0.0907 0.0150 0.1034 -0.0060 -0.0581 -0.0311 -0.1056 -0.0522 0.0454 0.0818 0.0634 0.1742 -0.0090 0.1096 0.1358 0.1414 -0.0403 0.1785 0.0387 0.0490 -0.0404 -0.0886 -0.0397 -0.0205 0.1462 0.0797 0.1563 -0.0141 -0.0230 -0.1314 0.0173 -0.1656 -0.0656 0.0776 0.1302 0.0702 0.0675 0.1705 0.1217 val(:,:,4) = 0.0640 -0.0430 0.1049 -0.0082 0.1085 -0.1171 -0.0675 0.0608 -0.0063 -0.0495 -0.0777 -0.0361 -0.0731 -0.0087 0.1168 -0.0917 0.0220 -0.0561 -0.0674 -0.0525 0.0594 -0.0636 0.0605 0.0511 0.0714 0.0651 0.1174 -0.0123 -0.0810 0.0241 -0.0633 0.1269 -0.0942 0.0491 0.0948 -0.0597 0.0129 0.0417 0.0205 -0.0363 0.0815 0.1332 -0.0694 0.0736 0.0335 0.0668 -0.1458 0.0435 -0.1186 -0.0521 -0.0390 -0.0872 0.0318 0.1457 -0.0524 -0.0503 -0.0170 0.0140 0.1046 0.1472 0.1184 0.1375 0.1029 0.0809 -0.0580 -0.1392 0.0745 0.0532 0.0209 0.1194 0.1533 0.0698 0.0174 -0.0750 -0.0738 -0.0521 0.0649 -0.0528 0.0391 -0.0016 val(:,:,5) = -0.0968 0.0373 -0.0269 -0.0538 0.1112 0.0710 -0.0976 0.0625 -0.0128 -0.0343 -0.0451 0.1009 0.0966 0.0343 -0.0087 -0.1024 0.0244 -0.0123 -0.0696 -0.0191 -0.0030 -0.0049 0.0510 0.1273 0.0140 0.1197 0.1444 0.1144 0.0263 -0.0464 -0.0627 -0.0860 0.0486 0.1247 0.0180 0.0410 0.1777 0.3064 0.2090 0.2552 0.0521 0.2137 0.1248 0.0701 0.1518 -0.0407 0.0311 -0.0110 -0.0697 -0.0190 0.0557 0.1220 0.0789 0.2252 0.1032 -0.0498 0.1052 0.0593 0.1192 0.1276 -0.0325 0.0247 0.0055 -0.0340 -0.0720 -0.0722 -0.0243 -0.0276 0.1265 0.1517 0.1561 0.0250 0.1047 -0.0108 -0.0414 0.1583 0.0877 0.1506 0.0433 -0.0789 val(:,:,6) = -0.0728 0.0442 0.0385 -0.0471 -0.0154 0.0072 0.0391 -0.0084 0.0002 -0.0976 -0.0739 -0.1029 -0.0900 -0.1138 -0.1138 0.0240 -0.0099 -0.1016 0.0084 0.0009 0.0685 -0.1583 0.0727 -0.0094 -0.0257 0.1525 0.0244 0.1001 0.0041 -0.0541 -0.0067 0.1186 -0.1098 0.0470 0.0112 -0.0177 -0.0630 -0.0005 -0.0324 0.0210 -0.0244 -0.0922 -0.1414 0.0240 0.0963 -0.0153 0.0847 0.0212 0.0405 -0.0250 -0.0457 -0.1211 -0.0128 0.0629 -0.0840 0.0466 -0.1379 0.0012 -0.1214 -0.0062 -0.0420 0.0128 0.0123 0.1205 0.0486 -0.0388 0.0229 -0.0180 -0.1282 -0.0137 0.1313 0.1193 0.0976 0.0322 0.1412 0.1529 0.1396 0.1046 0.1261 -0.0089 val(:,:,7) = 0.0305 0.1008 0.0171 0.0179 0.0790 0.0360 -0.0355 0.0322 -0.0712 0.0382 -0.1220 0.0664 -0.0903 0.0191 0.0485 -0.0388 -0.1341 0.0266 0.0054 -0.0307 -0.0856 0.0714 -0.0852 -0.0503 0.0372 0.0881 -0.0982 -0.0699 0.0811 -0.0283 -0.0552 0.0587 0.1054 -0.0041 -0.0736 0.0355 0.0894 0.0794 0.0639 0.0466 0.1013 0.0105 -0.0831 0.1491 0.0375 0.0142 -0.0470 -0.0333 -0.0010 -0.0782 -0.0467 0.1069 0.1561 -0.0448 -0.0016 0.0472 0.0004 0.1106 -0.0354 0.1019 0.1021 -0.0193 0.0950 -0.1098 -0.1190 -0.1160 0.0075 -0.0755 0.0252 0.1069 0.1117 -0.0808 0.0194 0.0890 -0.0550 0.0880 0.1191 0.0649 0.0747 0.0893 val(:,:,8) = 0.0435 -0.0356 0.0296 -0.0361 0.0730 0.0751 -0.0390 0.0266 -0.0949 0.0629 -0.0196 -0.0747 0.0440 0.0165 0.0513 -0.1129 -0.0628 -0.0113 -0.0791 0.0518 -0.0619 0.0621 0.0434 -0.0240 0.0915 -0.0400 0.1049 -0.0402 -0.0252 -0.0030 0.0294 -0.0184 0.0380 -0.0048 -0.0873 0.0284 -0.0668 -0.0598 0.0298 0.0417 0.0087 -0.0351 -0.0639 0.1051 0.0348 -0.0510 -0.0278 0.0614 0.0891 -0.0195 -0.0642 -0.0400 -0.1113 0.0299 -0.1354 0.0222 -0.0814 0.0298 -0.0040 -0.0618 0.0748 0.0859 0.0457 0.1189 -0.0451 -0.0651 -0.1117 -0.0140 -0.0751 0.0786 0.1019 0.0845 0.0676 -0.0045 0.0547 -0.0326 0.0844 0.1374 -0.0234 -0.1025 val(:,:,9) = 0.1020 -0.0721 -0.0498 0.0712 -0.0968 0.0636 0.0878 -0.0437 0.0305 -0.0653 -0.0449 -0.0061 0.0919 -0.1023 0.0782 0.0476 -0.0155 0.0421 0.0641 -0.0475 0.0973 -0.0368 -0.0697 -0.0838 -0.0587 0.1199 0.0692 -0.0492 -0.0270 0.0576 0.0282 0.0490 0.0220 0.0142 0.0207 0.0511 -0.0088 0.0380 0.0553 -0.0538 -0.0840 0.0539 0.0726 0.0839 0.0421 -0.0681 0.0505 -0.1081 -0.0706 0.0561 0.0891 0.0787 0.0465 -0.0763 0.0041 -0.1021 0.0070 0.0716 -0.0913 -0.0685 0.1270 0.0957 0.0706 -0.0932 0.0141 0.0503 -0.0338 -0.0906 -0.0436 -0.0498 0.0952 0.1004 -0.0263 0.1044 -0.0079 -0.0602 0.0199 -0.0371 -0.1195 0.0324 val(:,:,10) = 0.0991 0.1203 0.1527 0.1069 0.0153 0.0762 0.0471 0.0401 0.0581 0.0629 0.1991 0.1850 0.1453 0.2176 -0.0086 0.0341 0.1236 0.0720 0.0371 0.1215 0.0737 0.1050 0.1825 0.1360 0.0698 -0.1324 -0.2803 -0.1920 -0.2690 -0.1511 0.1115 0.1415 0.1538 0.1775 0.0428 0.3504 0.3449 0.3283 0.4411 0.2743 0.1720 0.0770 0.1436 0.2748 0.1496 0.1083 0.0771 0.0430 0.1577 0.0033 0.1286 0.2918 0.2266 0.2191 0.2807 0.2588 0.2072 0.2606 0.1922 0.0717 0.1633 0.0116 -0.0441 0.1433 0.0371 0.1599 0.0242 0.1706 0.2071 0.0818 -0.0658 -0.0983 -0.1772 -0.0653 -0.1437 0.0599 0.0185 0.0306 0.1637 0.1117 val(:,:,11) = -0.0155 -0.0246 0.1564 0.0839 -0.0153 -0.0388 -0.0532 -0.0131 0.0794 -0.1130 0.1582 -0.0367 0.0567 0.0706 0.0496 0.0101 0.0443 0.0942 0.1220 0.1115 0.1104 0.0393 0.1547 0.0165 0.0257 -0.0487 -0.1320 0.0092 -0.1445 -0.1319 -0.0172 -0.0110 0.1168 -0.0620 0.0649 -0.0037 0.0965 0.0692 0.0283 0.0750 -0.0374 0.0304 0.0673 0.1021 0.0265 0.1022 -0.0159 0.0987 0.0221 0.0592 0.0379 0.0746 0.0873 -0.0230 0.1475 -0.0198 -0.0496 0.1841 0.1499 -0.0143 0.0219 -0.1190 -0.0708 0.0955 -0.0621 0.1101 0.0507 0.0839 -0.0459 -0.0403 0.0512 -0.0695 -0.0248 0.0169 0.0455 0.1353 0.0179 0.1128 0.1278 0.0712 val(:,:,12) = -0.0453 -0.0323 0.0798 0.0473 -0.0647 0.0191 -0.0265 -0.0889 -0.0915 0.0118 -0.0141 -0.1483 -0.0628 0.0676 0.1102 -0.0710 -0.1261 -0.1621 -0.1377 -0.1023 -0.0774 -0.0565 0.1136 0.0022 0.1304 -0.0034 0.0266 0.1424 0.0637 0.0313 0.0122 0.0241 -0.0629 -0.0120 0.0454 0.0740 -0.0148 -0.0297 -0.0153 0.0419 0.1068 0.0772 -0.0176 0.0532 0.0532 -0.0783 -0.0468 -0.0225 -0.1482 -0.1652 -0.0101 -0.1618 0.0766 0.1619 0.0819 0.0378 0.0532 0.1461 0.0702 0.0348 0.1106 -0.0274 0.1503 0.0333 -0.0033 0.0374 0.0964 0.0587 0.1588 0.1458 0.0903 0.1272 -0.0156 -0.0522 -0.0305 -0.0320 0.1182 0.0995 0.1164 0.0545 val(:,:,13) = -0.0787 -0.0151 0.1216 -0.0376 -0.0009 0.0269 -0.0652 -0.0491 -0.0345 0.0414 -0.0440 0.0674 0.0606 0.0366 -0.0795 0.0680 0.0460 0.0706 0.0336 0.0139 0.0645 0.0060 0.0517 0.0655 0.0078 0.1490 0.0141 0.0307 0.1802 0.1084 -0.0402 0.0440 -0.0954 -0.0065 -0.0624 -0.0412 0.0398 -0.1044 -0.0771 -0.0866 0.0212 -0.1480 -0.0760 -0.0281 -0.0483 0.0498 -0.0096 -0.0348 0.0915 0.0691 -0.0230 -0.0344 0.0212 0.0308 0.0334 -0.1049 0.0271 -0.0445 -0.0040 -0.0776 0.0908 0.1250 0.0772 0.1192 0.0916 -0.0764 -0.0449 -0.0790 0.0506 -0.1085 0.0619 0.0498 0.1334 0.0219 0.0897 -0.0507 -0.0173 -0.0754 0.0811 0.1074 val(:,:,14) = -0.0327 0.0909 0.0189 0.0214 0.0418 0.0504 -0.1191 -0.0241 -0.0623 -0.0404 0.1074 -0.0237 -0.0367 0.1319 0.0139 -0.0360 0.1079 0.0172 0.0942 0.1029 -0.0077 -0.0818 0.1205 0.0555 -0.0829 -0.0838 0.0139 -0.0379 -0.0067 0.1236 0.0176 0.1034 0.0427 0.0058 -0.0931 0.0302 -0.1147 0.0932 -0.0200 -0.0405 -0.0797 -0.0112 0.0825 -0.0108 0.0705 0.1372 0.0329 0.1619 0.0312 0.1382 0.0748 0.0047 -0.0299 0.0751 0.0385 -0.0940 -0.0849 0.0957 0.0572 0.0040 0.0056 -0.0456 -0.0036 0.0285 0.0446 0.0550 0.0295 -0.1093 -0.0235 -0.0648 -0.0430 0.0337 -0.0026 0.0455 0.0837 -0.0633 0.0675 0.0342 0.0619 0.0124 val(:,:,15) = 0.1283 0.1020 -0.0208 0.1557 0.0837 -0.0126 -0.0270 -0.0333 -0.0641 -0.1173 -0.0054 0.1227 0.0811 0.1406 0.1286 0.0885 0.0147 0.1081 0.1718 -0.0336 -0.0370 0.0424 0.1475 0.0476 0.0017 0.0432 -0.0571 -0.0842 0.1065 -0.0218 -0.0028 0.0636 0.1474 0.1243 0.0437 0.1233 0.0885 -0.0566 -0.0440 -0.0605 -0.0726 0.1062 -0.0598 -0.0061 -0.0852 -0.0950 0.0541 -0.0050 0.0988 0.1170 0.0166 -0.0144 0.0525 0.0017 -0.0251 0.1199 -0.0228 0.1837 -0.0202 0.0990 -0.1106 0.0370 -0.0154 -0.0860 0.0519 0.1417 0.0517 0.0312 -0.0189 -0.0658 -0.0930 -0.1613 -0.0064 -0.0855 0.0524 0.1479 -0.0182 0.0001 0.0122 0.0495 val(:,:,16) = 0.0506 0.0510 0.0796 0.0178 -0.0208 0.1106 -0.0664 -0.0926 -0.0246 0.0591 -0.0400 -0.1554 0.0390 0.0438 -0.1349 0.0709 -0.1068 -0.0959 -0.1046 -0.0561 -0.0974 -0.0018 0.0486 -0.0129 0.0303 -0.0213 0.0644 0.0659 0.1149 0.1200 -0.1155 0.0751 0.0112 -0.0816 -0.1111 0.0842 -0.0844 -0.1065 -0.0447 0.0027 -0.0385 -0.0315 0.0963 -0.0445 -0.0612 -0.0218 -0.0568 0.0404 -0.0255 -0.0539 -0.1136 -0.0200 0.0135 0.0229 0.0837 -0.0432 0.0776 -0.0398 0.1124 0.0199 0.0435 0.0654 0.0518 -0.0805 0.1011 0.0747 -0.0723 -0.1244 0.0486 -0.1376 0.0138 0.0676 0.1414 0.0231 -0.0258 0.0802 0.0892 0.0440 -0.0780 -0.0201
比如该设计的第三层的16个卷积核对应偏置:
-0.105521400.141832770.037448838-0.038199190-0.022324685-0.049711946-0.020050919-0.00689968370.0451875930.0342314470.146840450.098354153-0.0277971400.0446159910.0170900620.028110711
4.全连接层
全连接层权重为3个通道,每个通道的长度为400,偏置为3,所需的参数总数为3×400+3=1203。
参数太多避免占用太多篇幅这里就不举例了。
总结之前先了解一下:
BRAM 由一定数量固定大小的存储块构成的,使用 BRAM 资源不占用额外的逻辑资源,并且速度快,不过使用的时候消耗的 BRAM 资源只能是其块大小的整数倍,就算你只存了 1 bit 也要占用一个 BRAM。一个 BRAM 的大小为 36K Bits,并且分成两个小的 BRAM 各自为 18K Bits,排列成又分为上下两块。内部视图如下:
本设计所使用的板子BRAM 600个也就是600×36Kbit=21.1Mb。
0.5个BRAM=18Kbit=18432bit
1 个BRAM =32Kbit=36864bit
还要明白:我们设计中运算数据位宽是多少,该设计所用的运算位宽为18bit,后期专门说明。
层 | 参数个数 | 数据位宽(bit) | 所占内存(bit) | 占用BRAM大小(个) |
---|---|---|---|---|
第一层卷积参数 | 6×5+6=36 | 18 | 36×18=648 | 0.5(不足18432bit) |
第二层卷积参数 | 6×16×5+16=496 | 18 | 496×18=8928 | 0.5(不足18432bit) |
第二层卷积参数 | 16×16×5+16=1296 | 18 | 1296×18=23328 | 1(不足36864bit) |
全连接参数 | 400×3+3=1203 | 18 | 1203×18=21653 | 1(不足36864bit) |
查看资源报告:
★★★如有错误欢迎指导!!!
Be First to Comment