1.Qt三种方式实现FTP上传功能
2.统信UOS系统开发笔记(八):在统信UOS上编译搭建mqtt基础环境(版本使用QMQTT::Clinet)
3.å·ç§¯ç¥ç»ç½ç»
Qt三种方式实现FTP上传功能
FTP协议是源码用于文件传输的一种协议,简称“文件传输协议”,源码属于TCP/IP协议组的源码一部分,适用于在互联网上传输大文件。源码FTP协议有主动模式和被动模式两种,源码本文仅作简要介绍。源码怎么获取springboot源码
实现Qt项目中FTP上传功能,源码主要有三种方式:Qt4 QFtp、源码Qt5 QNetworkAccessManager和POCO中的源码FTPClientSession。
1. Qt4 QFtp:为Qt4专设的源码FTP传输类,包含了创建目录、源码删除目录、源码删除文件、源码获取文件列表、源码openwrt修改网页源码上传、源码下载等常规操作接口。然而,由于Qt5弃用了该模块,转而使用QNetworkAccessManager。
2. Qt5 QNetworkAccessManager:是Qt中的网络请求模块,包含HTTP的post、get和put操作,适用于Qt5中实现FTP上传功能。但不支持FTP创建目录、删除目录、删除文件、获取文件列表等功能,输入密码下载源码仅限上传和下载操作。
3. POCO FTPClientSession:POCO网络模块内的FTP实现类,提供了创建目录、删除目录、删除文件、获取文件列表等接口。其功能基本涵盖了所有FTP上传需求。
三种方式各有优缺点,使用过程中面临各种问题。下面对比分析:
1. QFtp:虽然功能全面,但在Qt5中被废弃,需要自行编译源码,可能遇到编码问题。多商品订单源码优点在于接口完整、使用方便;缺点是编码和异常处理复杂,尤其在网络中断时,无法及时反馈异常信号。
2. QNetworkAccessManager:操作简单、集成度高,异常处理友好,断网后能及时反馈,支持超时后继续上传,提高了开发效率。但功能较为单一,仅限于上传下载操作。
3. FTPClientSession:使用简单、css图片拼接源码接口完整,异常处理通过抛出异常实现,如删除不存在的文件夹、创建已存在的文件夹等。缺点在于没有提供上传下载进度接口或回调,计算进度较为繁琐。网络异常处理不够友好。
FTPClientSession在获取服务器文件列表时,若文件名包含空格,会导致文件名分段,影响文件列表的正确读取。与QFtp相比,FTPClientSession的文件上传默认方式为二进制流,而QFtp和FTPClientSession允许调整上传方式,QNetworkAccessManager默认使用二进制流上传,可能导致文件大小变化,这是一个重要的问题。
就实际使用经验而言,QFtp相对更适合,能满足需求,但需自行处理异常情况。
本文仅概述三种实现方式的优缺点,后续文章将详细介绍如何使用这些方法,并展示在实际代码中遇到的各种问题。
统信UOS系统开发笔记(八):在统信UOS上编译搭建mqtt基础环境(版本使用QMQTT::Clinet)
MQTT协议介绍
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)是基于发布/订阅模式的轻量级通讯协议,由IBM于年发布。其最大优点在于,能以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。MQTT广泛应用于物联网、小型设备、移动应用等领域。
MQTT设计原则
MQTT具有以下特点:
1. 使用发布/订阅模式,实现一对多的消息发布,解除应用程序耦合。
2. 提供对负载内容的屏蔽,进行消息传输。
3. 使用TCP/IP提供网络连接。
4. 支持三种消息发布服务质量。
5. 具有小型传输、开销小的特性,协议交换最小化。
6. 为客户端异常中断提供机制。
发布/订阅者模式
MQTT支持发布/订阅模式,使MQTT协议在物联网、机器与机器(M2M)通信、智能家居等领域得到广泛应用。
统信UOS系统MQTT编译与环境搭建
统信UOS系统版本:系统版本为统信UOS 。
Qt编译MQTT
Qt5版本开始支持MQTT,但并未集成至安装包,需自行下载编译。Qt提供的qtmqtt库不支持点对点方式,仅支持订阅/发布者模式。
编译步骤
下载并解压MQTT源码至目标系统。
使用QtQCreator打开pro工程编译,切换至release模式。
在解压的源码路径手动创建Qt5Mqtt文件,编译成功。
部署MQTT模块至qt
将MQTT源码融入qt工程中,实现模块化部署。新建mqttClientDemo工程,提取源码中的mqtt模块,将其加入新工程的modules,引入qmqtt.pri文件。
解决编译报错
编译报错时,添加缺失的网络模块(QT += network),并调整私有头文件宏至头文件宏。
源码融入编译成功
源码成功融入,后续无需重新编译即可替换系统或版本。
模块化部署优化
创建mqttClientManager管理模块,用于包含MQTT源码,实现模块化部署。
å·ç§¯ç¥ç»ç½ç»
1ãäºç»´äºç¸å ³è¿ç®
äºç»´äºç¸å ³ï¼cross-correlationï¼è¿ç®çè¾å ¥æ¯ä¸ä¸ªäºç»´è¾å ¥æ°ç»åä¸ä¸ªäºç»´æ ¸ï¼kernelï¼æ°ç»ï¼è¾åºä¹æ¯ä¸ä¸ªäºç»´æ°ç»ï¼å ¶ä¸æ ¸æ°ç»é常称为å·ç§¯æ ¸æè¿æ»¤å¨ï¼filterï¼ãå·ç§¯æ ¸ç尺寸é常å°äºè¾å ¥æ°ç»ï¼å·ç§¯æ ¸å¨è¾å ¥æ°ç»ä¸æ»å¨ï¼å¨æ¯ä¸ªä½ç½®ä¸ï¼å·ç§¯æ ¸ä¸è¯¥ä½ç½®å¤çè¾å ¥åæ°ç»æå ç´ ç¸ä¹å¹¶æ±åï¼å¾å°è¾åºæ°ç»ä¸ç¸åºä½ç½®çå ç´ ãå¾1å±ç¤ºäºä¸ä¸ªäºç¸å ³è¿ç®çä¾åï¼é´å½±é¨ååå«æ¯è¾å ¥ç第ä¸ä¸ªè®¡ç®åºåãæ ¸æ°ç»ä»¥å对åºçè¾åºã
2ãäºç»´å·ç§¯å±
å·ç§¯å±å¾åäºå·ç§¯è¿ç®ï¼ä½å·ç§¯å±ä¸ç¨å°ç并éå·ç§¯è¿ç®èæ¯äºç¸å ³è¿ç®ãæ们å°æ ¸æ°ç»ä¸ä¸ç¿»è½¬ãå·¦å³ç¿»è½¬ï¼åä¸è¾å ¥æ°ç»åäºç¸å ³è¿ç®ï¼è¿ä¸è¿ç¨å°±æ¯å·ç§¯è¿ç®ãç±äºå·ç§¯å±çæ ¸æ°ç»æ¯å¯å¦ä¹ çï¼æ以使ç¨äºç¸å ³è¿ç®ä¸ä½¿ç¨å·ç§¯è¿ç®å¹¶æ æ¬è´¨åºå«ã
äºç»´å·ç§¯å±å°è¾å ¥åå·ç§¯æ ¸åäºç¸å ³è¿ç®ï¼å¹¶å ä¸ä¸ä¸ªæ éåç½®æ¥å¾å°è¾åºãå·ç§¯å±ç模ååæ°å æ¬å·ç§¯æ ¸åæ éåç½®ã
3ãç¹å¾å¾ä¸æåé
äºç»´å·ç§¯å±è¾åºçäºç»´æ°ç»å¯ä»¥çä½æ¯è¾å ¥å¨ç©ºé´ç»´åº¦ï¼å®½åé«ï¼ä¸æä¸çº§ç表å¾ï¼ä¹å«ç¹å¾å¾ï¼feature mapï¼ãå½±åå ç´ xçåå计ç®çææå¯è½è¾å ¥åºåï¼å¯è½å¤§äºè¾å ¥çå®é 尺寸ï¼å«åxçæåéï¼receptive fieldï¼ã
以å¾1为ä¾ï¼è¾å ¥ä¸é´å½±é¨åçå个å ç´ æ¯è¾åºä¸é´å½±é¨åå ç´ çæåéãæ们å°å¾ä¸å½¢ç¶ä¸º2Ã2çè¾åºè®°ä¸ºYï¼å°Yä¸å¦ä¸ä¸ªå½¢ç¶ä¸º2Ã2çæ ¸æ°ç»åäºç¸å ³è¿ç®ï¼è¾åºå个å ç´ zãé£ä¹ï¼zå¨Yä¸çæåéå æ¬Yçå ¨é¨å个å ç´ ï¼å¨è¾å ¥ä¸çæåéå æ¬å ¶ä¸å ¨é¨9个å ç´ ãå¯è§ï¼æ们å¯ä»¥éè¿æ´æ·±çå·ç§¯ç¥ç»ç½ç»ä½¿ç¹å¾å¾ä¸å个å ç´ çæåéåå¾æ´å 广éï¼ä»èææè¾å ¥ä¸æ´å¤§å°ºå¯¸çç¹å¾ã
4ãå¡«å åæ¥å¹
æ们ä»ç»å·ç§¯å±çä¸¤ä¸ªè¶ åæ°ï¼å³å¡«å åæ¥å¹ ï¼å®ä»¬å¯ä»¥å¯¹ç»å®å½¢ç¶çè¾å ¥åå·ç§¯æ ¸æ¹åè¾åºå½¢ç¶ã
4.1 å¡«å ï¼paddingï¼
æ¯æå¨è¾å ¥é«å宽ç两侧填å å ç´ ï¼é常æ¯0å ç´ ï¼ï¼å¾2éæ们å¨åè¾å ¥é«å宽ç两侧åå«æ·»å äºå¼ä¸º0çå ç´ ã
å¦æåè¾å ¥çé«åå®½æ¯ å ï¼å·ç§¯æ ¸çé«åå®½æ¯ å ï¼å¨é«ç两侧ä¸å ±å¡«å è¡ï¼å¨å®½ç两侧ä¸å ±å¡«å åï¼åè¾åºå½¢ç¶ä¸ºï¼
)
æ们å¨å·ç§¯ç¥ç»ç½ç»ä¸ä½¿ç¨å¥æ°é«å®½çæ ¸ï¼æ¯å¦3Ã3ï¼5Ã5çå·ç§¯æ ¸ï¼å¯¹äºé«åº¦ï¼æ宽度ï¼ä¸ºå¤§å°ä¸º2k+1çæ ¸ï¼ä»¤æ¥å¹ 为1ï¼å¨é«ï¼æ宽ï¼ä¸¤ä¾§éæ©å¤§å°ä¸ºkçå¡«å ï¼ä¾¿å¯ä¿æè¾å ¥ä¸è¾åºå°ºå¯¸ç¸åã
4.2 æ¥å¹ ï¼strideï¼
å¨äºç¸å ³è¿ç®ä¸ï¼å·ç§¯æ ¸å¨è¾å ¥æ°ç»ä¸æ»å¨ï¼æ¯æ¬¡æ»å¨çè¡æ°ä¸åæ°å³æ¯æ¥å¹ ï¼strideï¼ãæ¤åæ们使ç¨çæ¥å¹ é½æ¯1ï¼å¾3å±ç¤ºäºå¨é«ä¸æ¥å¹ 为3ãå¨å®½ä¸æ¥å¹ 为2çäºç»´äºç¸å ³è¿ç®ã
ä¸è¬æ¥è¯´ï¼å½é«ä¸æ¥å¹ 为 ï¼å®½ä¸æ¥å¹ 为 æ¶ï¼è¾åºå½¢ç¶ä¸ºï¼
å¦æ ,é£ä¹è¾åºå½¢ç¶å°ç®å为ï¼
æ´è¿ä¸æ¥ï¼å¦æè¾å ¥çé«å宽è½åå«è¢«é«å宽ä¸çæ¥å¹ æ´é¤ï¼é£ä¹è¾åºå½¢ç¶å°æ¯:(nh/sh)Ã(nw/sw)
å½ æ¶ï¼æ们称填å 为pï¼å½ æ¶ï¼æ们称æ¥å¹ 为sã
5ãå¤è¾å ¥ééåå¤è¾åºéé
ä¹åçè¾å ¥åè¾åºé½æ¯äºç»´æ°ç»ï¼ä½çå®æ°æ®ç维度ç»å¸¸æ´é«ãä¾å¦ï¼å½©è²å¾åå¨é«å宽2个维度å¤è¿æRGBï¼çº¢ã绿ãèï¼3个é¢è²ééãå设彩è²å¾åçé«å宽åå«æ¯håwï¼åç´ ï¼ï¼é£ä¹å®å¯ä»¥è¡¨ç¤ºä¸ºä¸ä¸ª3ÃhÃwçå¤ç»´æ°ç»ï¼æ们å°å¤§å°ä¸º3çè¿ä¸ç»´ç§°ä¸ºééï¼channelï¼ç»´ã
5.1 å¤è¾å ¥éé
å·ç§¯å±çè¾å ¥å¯ä»¥å å«å¤ä¸ªééï¼å¾4å±ç¤ºäºä¸ä¸ªå«2个è¾å ¥ééçäºç»´äºç¸å ³è®¡ç®çä¾åã
5.2 å¤è¾åºéé
å·ç§¯å±çè¾åºä¹å¯ä»¥å å«å¤ä¸ªééï¼è®¾å·ç§¯æ ¸è¾å ¥ééæ°åè¾åºééæ°åå«ä¸ºciåcoï¼é«å宽åå«ä¸ºkhåkwãå¦æå¸æå¾å°å«å¤ä¸ªééçè¾åºï¼æ们å¯ä»¥ä¸ºæ¯ä¸ªè¾åºééåå«å建形ç¶ä¸ºciÃkhÃkwçæ ¸æ°ç»ï¼å°å®ä»¬å¨è¾åºééç»´ä¸è¿ç»ï¼å·ç§¯æ ¸çå½¢ç¶å³coÃciÃkhÃkwã
对äºè¾åºééçå·ç§¯æ ¸ï¼æ们æä¾è¿æ ·ä¸ç§ç解ï¼ä¸ä¸ªciÃkhÃkwçæ ¸æ°ç»å¯ä»¥æåæç§å±é¨ç¹å¾ï¼ä½æ¯è¾å ¥å¯è½å ·æç¸å½ä¸°å¯çç¹å¾ï¼æ们éè¦æå¤ä¸ªè¿æ ·çciÃkhÃkwçæ ¸æ°ç»ï¼ä¸åçæ ¸æ°ç»æåçæ¯ä¸åçç¹å¾ã
5.3 1x1å·ç§¯å±
æå讨论形ç¶ä¸º1Ã1çå·ç§¯æ ¸ï¼æ们é常称è¿æ ·çå·ç§¯è¿ç®ä¸º1Ã1å·ç§¯ï¼ç§°å å«è¿ç§å·ç§¯æ ¸çå·ç§¯å±ä¸º1Ã1å·ç§¯å±ãå¾5å±ç¤ºäºä½¿ç¨è¾å ¥ééæ°ä¸º3ãè¾åºééæ°ä¸º2ç1Ã1å·ç§¯æ ¸çäºç¸å ³è®¡ç®ã
1Ã1å·ç§¯æ ¸å¯å¨ä¸æ¹åé«å®½çæ åµä¸ï¼è°æ´ééæ°ã1Ã1å·ç§¯æ ¸ä¸è¯å«é«å宽维度ä¸ç¸é»å ç´ ææç模å¼ï¼å ¶ä¸»è¦è®¡ç®åçå¨ééç»´ä¸ãå设æ们å°ééç»´å½ä½ç¹å¾ç»´ï¼å°é«å宽维度ä¸çå ç´ å½ææ°æ®æ ·æ¬ï¼é£ä¹1Ã1å·ç§¯å±çä½ç¨ä¸å ¨è¿æ¥å±çä»·ã
6ãå·ç§¯å±ä¸å ¨è¿æ¥å±ç对æ¯
äºç»´å·ç§¯å±ç»å¸¸ç¨äºå¤çå¾åï¼ä¸æ¤åçå ¨è¿æ¥å±ç¸æ¯ï¼å®ä¸»è¦æ两个ä¼å¿ï¼
ä¸æ¯å ¨è¿æ¥å±æå¾åå±å¹³æä¸ä¸ªåéï¼å¨è¾å ¥å¾åä¸ç¸é»çå ç´ å¯è½å 为å±å¹³æä½ä¸åç¸é»ï¼ç½ç»é¾ä»¥ææå±é¨ä¿¡æ¯ãèå·ç§¯å±ç设计ï¼å¤©ç¶å°å ·ææåå±é¨ä¿¡æ¯çè½åã
äºæ¯å·ç§¯å±çåæ°éæ´å°ãä¸èèåç½®çæ åµä¸ï¼ä¸ä¸ªå½¢ç¶ä¸º(ci,co,h,w)çå·ç§¯æ ¸çåæ°éæ¯ciÃcoÃhÃwï¼ä¸è¾å ¥å¾åç宽é«æ å ³ãåå¦ä¸ä¸ªå·ç§¯å±çè¾å ¥åè¾åºå½¢ç¶åå«æ¯(c1,h1,w1)å(c2,h2,w2)ï¼å¦æè¦ç¨å ¨è¿æ¥å±è¿è¡è¿æ¥ï¼åæ°æ°éå°±æ¯c1Ãc2Ãh1Ãw1Ãh2Ãw2ã使ç¨å·ç§¯å±å¯ä»¥ä»¥è¾å°çåæ°æ°éæ¥å¤çæ´å¤§çå¾åã
X=torch.rand(4,2,3,5)
print(X.shape)
conv2d=nn.Conv2d(in_channels=2,out_channels=3,kernel_size=(3,5),stride=1,padding=(1,2))
Y=conv2d(X)
print('Y.shape: ',Y.shape)
print('weight.shape: ',conv2d.weight.shape)
print('bias.shape: ',conv2d.bias.shape)
è¾åºï¼
torch.Size([4, 2, 3, 5])
Y.shape: torch.Size([4, 3, 3, 5])
weight.shape: torch.Size([3, 2, 3, 5])
bias.shape: torch.Size([3])
7ãæ± å
7.1 äºç»´æ± åå±
æ± åå±ä¸»è¦ç¨äºç¼è§£å·ç§¯å±å¯¹ä½ç½®çè¿åº¦æææ§ãåå·ç§¯å±ä¸æ ·ï¼æ± åå±æ¯æ¬¡å¯¹è¾å ¥æ°æ®çä¸ä¸ªåºå®å½¢ç¶çªå£ï¼åç§°æ± åçªå£ï¼ä¸çå ç´ è®¡ç®è¾åºï¼æ± åå±ç´æ¥è®¡ç®æ± åçªå£å å ç´ çæ大å¼æè å¹³åå¼ï¼è¯¥è¿ç®ä¹åå«å«åæå¤§æ± åæå¹³åæ± åãå¾6å±ç¤ºäºæ± åçªå£å½¢ç¶ä¸º2Ã2çæå¤§æ± åã
äºç»´å¹³åæ± åçå·¥ä½åçä¸äºç»´æå¤§æ± å类似ï¼ä½å°æ大è¿ç®ç¬¦æ¿æ¢æå¹³åè¿ç®ç¬¦ãæ± åçªå£å½¢ç¶ä¸ºpÃqçæ± åå±ç§°ä¸ºpÃqæ± åå±ï¼å ¶ä¸çæ± åè¿ç®å«ä½pÃqæ± åã
æ± åå±ä¹å¯ä»¥å¨è¾å ¥çé«å宽两侧填å 并è°æ´çªå£ç移å¨æ¥å¹ æ¥æ¹åè¾åºå½¢ç¶ãæ± åå±å¡«å åæ¥å¹ ä¸å·ç§¯å±å¡«å åæ¥å¹ çå·¥ä½æºå¶ä¸æ ·ã
å¨å¤çå¤ééè¾å ¥æ°æ®æ¶ï¼æ± åå±å¯¹æ¯ä¸ªè¾å ¥ééåå«æ± åï¼ä½ä¸ä¼åå·ç§¯å±é£æ ·å°åééçç»ææééç¸å ãè¿æå³çæ± åå±çè¾åºééæ°ä¸è¾å ¥ééæ°ç¸çã
CNNç½ç»ä¸å¦å¤ä¸ä¸ªä¸å¯å¯¼çç¯èå°±æ¯Poolingæ± åæä½ï¼å 为Poolingæä½ä½¿å¾feature mapç尺寸ååï¼åå¦å2Ã2çæ± åï¼å设é£ä¹ç¬¬l+1å±çfeature mapæ个梯度ï¼é£ä¹ç¬¬lå±å°±ä¼æ个梯度ï¼è¿ä½¿å¾æ¢¯åº¦æ æ³å¯¹ä½çè¿è¡ä¼ æä¸å»ãå ¶å®è§£å³è¿ä¸ªé®é¢çææ³ä¹å¾ç®åï¼å°±æ¯æ1个åç´ çæ¢¯åº¦ä¼ éç»4个åç´ ï¼ä½æ¯éè¦ä¿è¯ä¼ éçlossï¼æè 梯度ï¼æ»åä¸åãæ ¹æ®è¿æ¡ååï¼mean poolingåmax poolingçååä¼ æä¹æ¯ä¸åçã
7.2 mean pooling
mean poolingçååä¼ æå°±æ¯æä¸ä¸ªpatchä¸çå¼æ±åå¹³åæ¥åpoolingï¼é£ä¹ååä¼ æçè¿ç¨ä¹å°±æ¯ææ个å ç´ ç梯度çå为n份åé ç»åä¸å±ï¼è¿æ ·å°±ä¿è¯æ± åååç梯度ï¼æ®å·®ï¼ä¹åä¿æä¸åï¼è¿æ¯æ¯è¾ç解çï¼å¾ç¤ºå¦ä¸ï¼
mean poolingæ¯è¾å®¹æ让人ç解éçå°æ¹å°±æ¯ä¼ç®åç认为ç´æ¥æ梯度å¤å¶Néä¹åç´æ¥ååä¼ æåå»ï¼ä½æ¯è¿æ ·ä¼é ælossä¹åå为åæ¥çNåï¼ç½ç»æ¯ä¼äº§ç梯度çç¸çã
7.3 max pooling
max poolingä¹è¦æ»¡è¶³æ¢¯åº¦ä¹åä¸åçååï¼max poolingçååä¼ ææ¯æpatchä¸æ大çå¼ä¼ éç»åä¸å±ï¼èå ¶ä»åç´ çå¼ç´æ¥è¢«èå¼æãé£ä¹ååä¼ æä¹å°±æ¯æ梯度ç´æ¥ä¼ ç»åä¸å±æä¸ä¸ªåç´ ï¼èå ¶ä»åç´ ä¸æ¥å梯度ï¼ä¹å°±æ¯ä¸º0ãæ以max poolingæä½åmean poolingæä½ä¸åç¹å¨äºéè¦è®°å½ä¸æ± åæä½æ¶å°åºåªä¸ªåç´ çå¼æ¯æ大ï¼ä¹å°±æ¯max idã
æºç ä¸æä¸ä¸ªmax_idx_çåéï¼è¿ä¸ªåéå°±æ¯è®°å½æ大å¼æå¨ä½ç½®çï¼å 为å¨ååä¼ æä¸è¦ç¨å°ï¼é£ä¹å设ååä¼ æåååä¼ æçè¿ç¨å°±å¦ä¸å¾æ示ã
7.4 Pytorch å®ç°æ± åå±
æ们使ç¨Pytorchä¸çnn.MaxPool2då®ç°æå¤§æ± åå±ï¼å ³æ³¨ä»¥ä¸æé å½æ°åæ°ï¼
kernel_size â the size of the window to take a max over
stride â the stride of the window. Default value is kernel_size
padding â implicit zero padding to be added on both sides
forwardå½æ°çåæ°ä¸ºä¸ä¸ªåç»´å¼ éï¼å½¢ç¶ä¸º ï¼è¿åå¼ä¹æ¯ä¸ä¸ªåç»´å¼ éï¼å½¢ç¶ä¸º ï¼å ¶ä¸Næ¯æ¹é大å°ï¼C,H,Wåå«è¡¨ç¤ºééæ°ãé«åº¦ã宽度ã
X=torch.arange(,dtype=torch.float).view(1,2,4,4)
pool2d=nn.MaxPool2d(kernel_size=3,padding=1,stride=(2,1))
Y=pool2d(X)
print(X)
print(Y)
ç»ä¹
1ãåå¦ä½ ç¨å ¨è¿æ¥å±å¤çä¸å¼ \times Ãç彩è²ï¼RGBï¼å¾åï¼è¾åºå å«ä¸ªç¥ç»å ï¼å¨ä½¿ç¨åç½®çæ åµä¸ï¼åæ°æ°éæ¯ï¼
çï¼å¾åå±å¹³åé¿åº¦ä¸º3ÃÃï¼æéåæ°ååç½®åæ°çæ°éæ¯3à à à + =ã
2ãåå¦ä½ ç¨å ¨è¿æ¥å±å¤çä¸å¼ Ãç彩è²ï¼RGBï¼å¾åï¼å·ç§¯æ ¸çé«å®½æ¯3Ã3ï¼è¾åºå å«ä¸ªééï¼å¨ä½¿ç¨åç½®çæ åµä¸ï¼è¿ä¸ªå·ç§¯å±å ±æå¤å°ä¸ªåæ°ï¼
çï¼è¾å ¥ééæ°æ¯3ï¼è¾åºééæ°æ¯ï¼æ以åæ°æ°éæ¯Ã3Ã3Ã3+=ã
3ãconv2d = nn.Conv2d(in_channels=3, out_channels=4, kernel_size=3, padding=2)ï¼è¾å ¥ä¸å¼ å½¢ç¶ä¸º3ÃÃçå¾åï¼è¾åºçå½¢ç¶ä¸ºï¼
çï¼è¾åºééæ°æ¯4ï¼ä¸ä¸ä¸¤ä¾§æ»å ±å¡«å 4è¡ï¼å·ç§¯æ ¸é«åº¦æ¯3ï¼æ以è¾åºçé«åº¦æ¯ - 3 + 1=−3+1=ï¼å®½åº¦åçå¯å¾ã
4ãå ³äºå·ç§¯å±ï¼ä»¥ä¸åªç§è¯´æ³æ¯é误çï¼
A.1Ã1å·ç§¯å¯ä»¥çä½æ¯ééç»´ä¸çå ¨è¿æ¥
B.æ个äºç»´å·ç§¯å±ç¨äºå¤çå½¢ç¶ä¸º3ÃÃçè¾å ¥ï¼å该å·ç§¯å±æ æ³å¤çå½¢ç¶ä¸º3ÃÃçè¾å ¥
C.å·ç§¯å±éè¿å¡«å ãæ¥å¹ ãè¾å ¥ééæ°ãè¾åºééæ°çè°èè¾åºçå½¢ç¶
D .两个è¿ç»ç3Ã3å·ç§¯æ ¸çæåéä¸ä¸ä¸ª5Ã5å·ç§¯æ ¸çæåéç¸å
çï¼éBï¼å¯¹äºé«å®½ç»´åº¦ï¼åªè¦è¾å ¥çé«å®½ï¼å¡«å åçï¼å¤§äºæçäºå·ç§¯æ ¸çé«å®½å³å¯è¿è¡è®¡ç®ã
the first layer is a 3 Ã 3 convolution, the second is a fully connected layer on top of the 3 Ã 3 output grid of the first layer (see Figure 1). Sliding this small network over the input activation grid boils down to replacing the 5 Ã 5 convolution with two layers of 3 Ã 3 convolution.
æ们å设å¾çæ¯5*5ç
æ们使ç¨5*5çå·ç§¯æ ¸å¯¹å ¶å·ç§¯ï¼æ¥é¿ä¸º1ï¼å¾å°çç»ææ¯:(5-5)/1+1=1
ç¶åæ们使ç¨2个å·ç§¯æ ¸ä¸º3*3çï¼è¿éç两个æ¯æ2å±ï¼
第ä¸å±3*3ï¼
å¾å°çç»ææ¯(5-3)/1+1=3
第äºå±3*3ï¼
å¾å°çç»ææ¯(3-3)/1+1=1
æ以æ们çæç»å¾å°ç»ææåé大å°åç¨5*5çå·ç§¯æ ¸å¾å°çç»æ大å°æ¯ä¸æ ·çï¼ï¼ï¼
5ãå ³äºæ± åå±ï¼ä»¥ä¸åªç§è¯´æ³æ¯é误çï¼
A.æ± åå±ä¸åä¸ååä¼ æ
B.æ± åå±æ²¡æ模ååæ°
C.æ± åå±é常ä¼åå°ç¹å¾å¾çé«å宽
D.æ± åå±çè¾å ¥åè¾åºå ·æç¸åçééæ°
çï¼A
é项1ï¼é误ï¼æ± åå±æåä¸æ¨¡åçæ£å计ç®ï¼åæ ·ä¹ä¼åä¸ååä¼ æ
é项2ï¼æ£ç¡®ï¼æ± åå±ç´æ¥å¯¹çªå£å çå ç´ æ±æ大å¼æå¹³åå¼ï¼å¹¶æ²¡æ模ååæ°åä¸è®¡ç®
é项3ï¼æ£ç¡®
é项4ï¼æ£ç¡®
åèæç®ï¼
/
/question//answer/
/zouxiaolv/article/details/