首页 > 其他分享 >深度学习基础课:重构并加入调试日志和测试代码

深度学习基础课:重构并加入调试日志和测试代码

时间:2023-01-30 16:57:26浏览次数:73  
标签:重构 加入 代码 学习 基础课 测试代码 日志 调试

大家好~我开设了“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序

线上课程资料:

本节课录像回放

加QQ群,获得ppt等资料,与群主交流讨论:106047770

本系列文章为线上课程的复盘,每上完一节课就会同步发布对应的文章

本课程系列文章可进入索引查看:

深度学习基础课系列文章索引

目录

为什么要学习本课

  • 为什么要重构代码?
    答:方便加入各种不同类型的层到神经网络中

重构代码

  • 为了简单,本节课只考虑全连接层

  • 重构的关键是定义每层的forward等函数的输入、输出为统一的抽象类型

  • 通过泛型来实现类型重载,如支持全连接层和卷积层的forward函数的input参数为不同的类型(前者为Vector.t,后者为Matrix.t)

  • 重构后的“构建神经网络”的伪代码如下所示:

let networkState = let Network.build(
    [
        LinearLayer.create(layerData1),
        LinearLayer.create(layerData2)
    ]
)

加入调试日志

  • 为什么要加入调试日志?
    答:目前使用DebugUtils来在运行时检查一些值是否有异常。但是这样这不够全面,所以加入调试日志来打印训练的每轮中的每层的输入和输出,从而方便排查

加入BDD测试

对隐藏层和输出层进行了BDD测试(行为驱动测试)

相关的代码为:test

代码实现

  • 重构后的入口代码为:Main

标签:重构,加入,代码,学习,基础课,测试代码,日志,调试
From: https://www.cnblogs.com/chaogex/p/17076552.html

相关文章

  • 深度学习基础课:总结
    大家好~我开设了“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序线上课程资料:本节课录像回放加QQ群,获得......
  • 深度学习基础课:使用Adam算法
    大家好~我开设了“深度学习基础班”的线上课程,带领同学从0开始学习全连接和卷积神经网络,进行数学推导,并且实现可以运行的Demo程序线上课程资料:本节课录像回放加QQ群,获得......
  • 14.6 SQL Server事务日志备份
    SQLServer事务日志备份目录SQLServer事务日志备份简介使用T-SQL创建事务日志备份示例从事务日志备份还原数据库总结简介当数据库的恢复模式为FULL(完整)或BULK_LOGGED(大......
  • 温习日志-9
    温习日志——2023年1月29日下午学习内容默认参数在ES5时,当检验函数中参数是否添加,并且添加默认值,需要用到||在ES6只需在函数中的参数直接等于默认参数,当调用时没有......
  • 蓝桥杯备战日志(Python)2-相乘(逆向枚举)
    原题小蓝发现,他将  至  之间的不同的数与  相乘后再求除以  的余数,会得到不同的数。小蓝想知道,能不能在  至  之间找到一个数,与  相乘后再除以  后的余数......
  • ElasticSearch+Kibana+Filebeat+Head搭建日志采集系统
    安装步骤如下:1.进入elasticsearch官网下载:​​​https://www.elastic.co/downloads/elasticsearch​​​cd/usr/local/wget​​https://artifacts.elastic.co/download......
  • 统信桌面端专业版开启cron日志,确认定时任务执行情况
    默认没有开启cron日志记录1.修改rsyslogvi/etc/rsyslog.conf#将cron前面的注释符去掉cron.*/var/log/cron.log 排查完毕需关闭,重新注释掉该行2.重启rsyslo......
  • SQLSERVER 事务日志的 LSN 到底是什么?
    SQLSERVER事务日志的LSN到底是什么? 一:背景1.讲故事大家都知道数据库应用程序 它天生需要围绕着数据文件打转,诸如包含数据的 .mdf,事务日志的 .ldf,很多时候深......
  • 2.日志
    1.一个好的项目应该有一个好的日志框架,保证服务正常运行  思路 我认为一个内嵌的日志应该是要能支持 Microsoft.Extensions.Logging微软插件的服务。   所以......
  • 温习日志-8
    温习日志——2023年1月28日下午学习内容Sets通过newSet(可迭代对象)创建setset集合会将数组中重复项删除,保证都是唯一值set接受可迭代对象,就算是字符串也行set方......