应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

AI课堂第16讲DL深度学习PyTorch计算图与模型构造

  前面几节我们学习了深度学习模型的基本原理与实现,下面我们继续学习深度学习计算的各个组成部分,为后续学习复杂模型打下基础。
  在学习模型构造之前,我们先了解一下什么是计算图。
  计算图(ComputationalGraph)
  计算图是用来描述运算的有向无环图,有两个主要元素:
  节点(Node):节点表示数据,如向量、矩阵、张量。
  边(Edge):边表示运算,如加减乘除卷积等。
  用计算图表示:y(x1w)(x2w),如下图所示:
  计算图
  其中,x1,x2,w,y分别为节点,,为节点之间的操作,即边。故yab,其中ax1w,bx2w。
  计算图与梯度求导
  求上图y对w的导数,根据复合函数的求导法则,推理如下:
  对应到计算图中,就是根节点y到叶子节点w有两条路径yaw和ybw。根节点依次对每条路径的子节点求导,直到叶子节点w,最后把每条路径的导数相加即可,其实就是我们前面讲过的反向传播求偏导。
  总结为y对w求导,就是从计算图中找到所有y到w的路径,然后把各个路径的导数进行求和。
  代码演示如下:
  PyTorch动态计算图演示
  计算图又分为静态计算图(StaticComputationalGraph)和动态计算图(DynamicComputationalGraph):
  动态图就是运算和搭建同时进行,也就是可以先计算前面的节点的值,再根据这些值搭建后面的计算图。
  静态图是先搭建图,然后再输入数据进行运算,是先定义后运行的方式,之后再次运行的时候就不再需要重新构建计算图,所以速度会比动态图更快,但是不灵活。
  PyTorch因其动态图的特色吸引了很多使用者,而Tensorflow早期是用的静态图导致开发很不友好,后来也改成了动态图模式。
  tensorflow静态计算图演示
  动态图和静态图对比
  模型构造
  PyTorch是基于动态图的模型搭建方式,我们可以随机的在网络中添加或者删除网络层。PyTorch为我们提供了非常方便的nn工具箱,我们搭建模型只需要定义一个继承自nn。module的类并实现其init和forward方法就可。
  其中nn。Module类是nn模块中提供的一个模型构造类,是所有神经网络模块的基础类。我们需要继承它来定义我们的自己的网络结构。init方法中动态绑定成员变量,定义我们的网络结构和相关参数;forword方法中决定数据流经这些成员变量的顺序,即网络的前向传播方式。
  PyTorch中nn工具箱的结构示意图
  一般来说,我们构建网络模型时用到的卷积层、全连接层、Dropout层等含有可学习参数的层都是继承nn。Module,而激活函数、池化层等函数类型的层继承于nn。functional。
  1。继承Module类来构造模型
  下面定义的MLP类中无须定义反向传播函数。系统将通过自动求梯度而自动生成反向传播所需的backward函数。
  我们可以实例化MLP类得到模型变量net。下的代码初始化net并传输数据X做次前向计算。其中,net(X)会调用MLP继承Module类的call函数,这个函数将调用MLP类定义的forward函数来完成前向计算。
  继承Module类的基础模型
  这并没有将Module类命名为Layer(层)或者Model(模型)之类的名字,这是因为该类是一个可供自由组建的部件。它的子类既可以是一个层(如PyTorch提供的Linear类),又可以是个模型(如这定义的MLP类),或者是模型的一个部分。我们下面来展示它的灵活性。
  2。Module的子类
  PyTorch还提供了许多继承自Module的类,如:Sequential、ModuleList和ModuleDict等。
  2。1Sequential类
  当模型的前向计算为简单的串联各个网络层的时候,可以通过Sequential类以更加简单的方式来定义模型。Sequential可以接收一个子模块的有序字典(OrderedDict)或者一系列的子模块作为参数来逐一的添加Module的子类的实例。在前向传播计算的时候,可以将这些实例按照添加的顺序逐一计算,向前传播。这里实现一个MySequential类,其机制和Sequential类似。
  举例如下:
  Sequential类模型
  2。2ModuleList类
  ModuleList类接收一个子模块的列表作为输入,也可以类似List那样进行append和extend操作。类似于我们建立一个list,list内部中的每一个元素代表一个网络层。
  举例如下:
  ModuleList类模型
  ModuleList不同于一般的Python的list,加入到ModuleList里面的所有模块的参数会被自动添加到整个网络中。
  2。3ModuleDict类
  ModuleDict类接收一个子模块的字典作为输入,然后按照类似于字典的形式进行添加访问操作,举例如下:
  ModuleDict类模型
  ModuleDict和ModuleList类似的是,ModuleDict实例仅仅是存放了一些模块的字典,并没有定义forward函数,前向传播的方式需要我们自己定义。同样,ModuleDict也与Python的Dict有所不同,ModuleDict里的所有模块的参数会被自动添加到整个网络结构的内部。
  3。构造复杂的模型
  上面介绍的Sequential使用简单,但灵活性不足。通常我们还是自定义类,继承nn。Module,去完成更复杂的模型定义和控制。下面的我们尝试构建一个复杂点的网络来总结上面的内容,该网络中包含不被迭代的参数,即常数参数,还多次调用相同的层。
  复杂模型构建
  总结
  PyTorch是基于动态图的模型搭建方式。
  Module类是PyTorch中所有神经网络模块的基类,也是个可供自由构建的模块。它的子类既可以是个层(如PyTorch提供的Linear类),又可以是一个模型(如这里是定义的MLP类),或者是模型的一个部分。
  Sequential、ModuleList、ModuleDict类都继承自Module类。
  Sequential内的模块需要按照顺序排列,要保证相邻层的输入输出大小相匹配,内部forward功能已经实现。与Sequential不同,ModuleList和ModuleDict并没有定义一个完整的网络,它们只是将不同的模块存放在一起,这些模块之间没有联系也没有顺序(所以不用保证相邻层的输入输出维度匹配),需要自己定义forward函数。
  虽然Sequential等类可以使模型构造更加简单,但直接继承Module类可以极大地拓展模型构造的灵活性。

腩潮鲜牛腩火锅加盟费用总部咨询现在火锅是很多人生活中不可缺少的美食,在其中腩潮鲜牛腩火锅这是一个很有发展潜力的品牌,腩潮鲜牛腩火锅不管是技术还是产品的品质都已经很成熟,产品种类多样化让人百吃不厌,腩潮鲜牛腩……温鼎阁海鲜牛肉火锅加盟费用总部咨询现在火锅是很多人生活中不可缺少的美食,在其中温鼎阁middot;海鲜牛肉火锅这是一个很有发展潜力的品牌,温鼎阁middot;海鲜牛肉火锅不管是技术还是产品的品质都已经很成熟,产……正宗保山铜瓢牛肉加盟费用总部咨询现在火锅是很多人生活中不可缺少的美食,在其中正宗保山铜瓢牛肉这是一个很有发展潜力的品牌,正宗保山铜瓢牛肉不管是技术还是产品的品质都已经很成熟,产品种类多样化让人百吃不厌,正宗保……热辣部落汤烤锅王加盟费多少钱已认证每日前十名咨询来电者可免费获得10000元创业扶持基金热辣部落汤烤锅王加盟费多少钱【已认证】汤锅与烤肉走到一起,热辣部落汤烤锅王带给食客更加不一样的舌尖体验。精选新鲜肉,……自制补酒喝了十来年,大伯喝到肠子被撑烂钱江晚报小时新闻通讯员李煦记者何丽娜许紫莹真没想到,喝药酒也会喝出事情,以后再也不敢随便自制这种补酒了!人在家中坐,祸从天上来。家住杭州市桐庐县的老蒋(化名)说起喝……热辣部落加盟费多少钱总部优惠一:每日前10位来电咨询者可获得万元创业大礼包!优惠二:每日前20位来电咨询者立享新品套餐详情及设备优惠!选址培训设备店面一站式搞定全程扶持1店赚6店钱餐……新加坡长周末来临新马关卡昨现间歇性人潮作者:李谊萱为避开长周末人潮,不少人选择昨天提早越堤到马来西亚,兀兰关卡傍晚时分出现间歇性人潮。记者昨天傍晚6时到兀兰关卡采访时,发现通往兀兰关卡的道路都未见堵车,……国乒男双全军覆没!苦战5局惨遭逆转,资格赛一轮游爆冷输球乒乓球WTT多哈球星赛激战正酣,北京时间3月26日凌晨,国乒正式无缘双打冠军原本中国队就放弃了混双、女双2个项目,随后男双曾蓓勋梁国栋又突然退出,而最后的独苗赵子豪薛飞在10、……15年过去了,那个说要帮侯耀文养女儿的郭德纲,履行承诺了吗?他是著名相声表演艺术家侯宝林的第三个儿子。他12岁登台,将自己的一生都献给了相声事业。正是在他的提携照料下,郭德纲才能度过北漂时最艰难的那段岁月。可以说,如果……猫咪驱虫多少钱(两个月小猫驱虫死了)Sayings:寄生虫感染是小猫最常见的疾病,尤以流浪猫最常见。所以刚带回家的猫咪一定要驱虫,否则很容易让家里的其他猫咪感染。今天就来跟大家聊聊,关于猫咪驱虫应该怎……高顿教育怎么样(高顿教育算大公司吗)2019年8月31日下午,高顿教育考研研究院成立暨名师签约仪式在高顿上海总部隆重举行。行业著名老师唐迟、孔昱力现场签约成为高顿教育考研研究院高级顾问。高顿考研事业部总经理王洛,……AG被零封,一诺成为热搜榜第一,谁为比赛背锅AG菲菲给出了答陌陌聊游戏,给您带来精彩激烈的KPL夏季赛赛事资讯!在刚刚结束的一场A组的常规赛中,AG超玩会以0比3的总比分不敌XYG,被对手直接零封!这场比赛失利之后,AG超玩会从S……
帅!广西籍跆拳道运动员骆宗诗踢进巴黎奥运会2022年世界跆拳道大满贯冠军系列赛暨奥运直通卡赛,近日在江苏无锡太湖国际博览中心落幕,广西北海妹子骆宗诗战胜了国家队队友周俐君夺得冠军,直通巴黎奥运会。2022年世界跆……世界摔联积分赛埃及亚历山大站女子50公斤级中国队包揽前三新华社北京2月26日电(记者王楚捷、牛梦彤)当地时间25日,在世界摔联国际积分赛埃及亚历山大站第三个比赛日中,中国女队发挥出色,在50公斤级、53公斤级、55公斤级、59公斤级……电磁炉为什么越来越多人喜欢?电磁灶,是现代厨房革命的产物,完全区别于传统所有的有明火传导加热灶具,而让热直接在锅底产生,因此热效率得到了极大的提高,电磁加热更是人类已知热效率最高的一种环保、安全的烹饪方式……盘点支持IP68级防尘防水的华为手机,共19款【1】华为Mate20Pro搭载麒麟980处理器,采用台积电7nm制程工艺,集成69亿颗晶体管,能效比非常优秀,成就无与伦比的性能体验正面是一块6。39英寸的AMO……漫评美西方炒作所谓中国债务陷阱贼喊捉贼来源:人民网国际频道原创稿漫画作者:谭希光(人民网版权图片,未经授权,请勿转载。)近日,在国际货币基金组织、世界银行和二十国集团轮值主席国印度举行讨论全球债务问题视……NASICON电解质在固态钠金属电池中的研究进展北理工赵永杰副教授研究小组EnSM:NASICON电解质在固态钠金属电池中的研究进展文章信息NASICON电解质在固态钠金属电池中的研究进展第一作者:李阳,李……高中校园动作冒险游戏闹事者开放试玩Steam新品节期间,马来西亚游戏团队带来了一款校园动作游戏《闹事者(Troublemaker)》,值得关注。这款游戏融合了动作和角色扮演要素,打斗颇有校园版《师父》的意思。……泰国,为什么专噶中国人的腰子?作者高乐高王动编辑闫如意最近互联网上关于泰国的讨论,是越来越邪门了。到泰国猛男餐厅吃饭被迷晕贩卖、蛇蝎美女勾引游客割肾、在泰国711就可以买到大麻这类骇……彩电市场掀起价格战,85寸巨幕下场厮杀,大屏幕快速普及?随着如今手机、电脑和投影等电子产品的冲击,彩电市场好像越来越被边缘化。现在的彩电产品仅满足人们的刚需已经远远不够,消费者逐渐转向享乐型、品质型消费。在这样的背景下,彩电市场确实……上海女子半马报名扩容通道开启,名额有限拼手速啦!时隔两年,2023上海女子半程马拉松赛(上马系列赛)将于今年5月1日再次开跑,比赛得到了跑友们的热情参与,上马官方报名参赛资格已一席难求。作为主办方之一的长宁,特别为广大马拉松……苹果智能戒指专利曝光主要服务于AR或VR场景IT之家4月12日消息,根据美国商标和专利局(USPTO)公示的清单,苹果近日获得了一项智能戒指相关的设计专利,编号为US11625098B2。这款智能戒指专利主要服务于……AI裸照满天飞,隐私受损难以估量一键脱衣已有替代品导语:AI裸照满天飞,隐私受损难以估量:一键脱衣已有替代品近日,在广州地铁上一名女性的照片被恶意人士利用AI技术进行一键脱衣,造谣称她在地铁上拍摄裸照。但事实上,该女主角……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网