ANNdotNET简介 是一个在。net平台上进行深度学习的开源项目。NET Framework和。NET Core)。该项目位于http://github.com/bhrnjica/anndotnet,更多信息请访问https://bhrnjica.net/anndotnet。 该项目有两个版本:GUI和CMD工具。该项目的主要目的是构建深度学习模型,而不因调试源代码和安装/更新丢失的包和环境而分心。用户不必担心应用程序使用的是哪个版本的ML引擎。换句话说,ANNdotNET在以下几种情况下是理想的: 更关注网络开发和培训过程使用经典桌面方法,而不是专注于编码,更少的时间花在调试源代码,更多的关注不同的配置和参数变异,适合工程师/用户不熟悉编程语言的支持,如果这个问题需要编码更高级的自定义模型,或培训过程,ANNdotNET CMD为这种实现提供了高水平的API,所有的ml配置文件生成的GUI工具,可以处理的CMD工具,反之亦然。 有了ANNdotNET GUI工具,用户可以为训练准备数据,通过执行几个动作:数据清理,特征选择,类别编码,缺失值处理,并创建训练和验证数据集之前,开始建立深度神经网络。一旦数据准备好了,用户就可以创建机器学习配置(mlconfig)文件,以便开始构建和训练深度神经网络。用户可以使用应用程序中实现的GUI工具处理以前的所有操作。 为了持久化关于数据准备和转换操作的信息,应用程序使用annproject文件类型,它包含关于原始数据集的信息,元数据信息和关于mlconfig文件的信息。 机器学习配置存储在带有mlconfig文件扩展名的独立文件中。有关ANNdotNET文件的更多信息,读者可以打开这个链接。下面的图片显示了ANNdotNET如何处理annproject和相应的机器学习配置在annproject: 可以看到,annproject可以由任意数量的mlconfig组成,这是处理ML项目时的典型场景。除非应用程序处于培训或评估模式,否则用户可以在任何时候在mlconfig之间切换。 ANNdotNET毫升引擎 ANNdotNET介绍了ANNdotNET机器学习引擎(MLEngine),它负责培训和评估mlconfig文件中定义的模型。ML引擎依赖于微软的Cognitive Toolkit, CNTK开源库,它被证明是深度学习最好的开源库之一。ML引擎通过所有的应用,展示了CNTK的所有优秀特性,例如GPU支持训练和评估、不同类型的学习者,同时也扩展了CNTK特性,增加了更多的评估功能(RMSE、MSE、分类精度、判定系数等),扩展了小批量源、训练器和评估模型。 ML引擎还包含神经网络层的实现,这应该是高级CNTK API,与Keras和其他基于python的深度学习API中的层实现非常相似。有了这个实现,ANNdotNET实现了可视化神经网络设计器,称为ANNdotNET NNDesigner,它允许用户设计任意大小和任意类型的层的神经网络配置。在第一个版本中实现了以下层: 归一化层——在到达网络之前,采用数值特征并对其值进行归一化。更多信息可以在这里找到。具有激活功能的密集经典神经网络层LSTM - LSTM层可选择窥孔和自稳定。嵌入-嵌入层,滴-滴层。 在未来的版本中会添加更多的层类型。 通过使用预定义层,可以简化神经网络的设计。通过这种方式,我们可以实现几乎任何网络,我们通常是通过源代码实现的。 如何使用ANNdotNET NNDesigner MLConfig创建后,用户可以打开它并开始构建神经网络。NNDesigner被放置在网络设置选项卡页面中。下图显示了网络设置选项卡页。 NNetwork设计器包含组合框与支持的NN层,和两个动作按钮添加和删除层在网络/从。添加和删除图层就像在列表框中添加和删除项目一样简单。为了添加一个图层,从组合框中选择项目,然后按下add按钮。要将该图层从网络中删除,点击列表框中的图层,按下remove按钮,确认删除。为了成功创建网络,必须创建列表中的最后一层,其输出维度必须与th上所示的输出层相同e窗口左侧,否则一旦开始培训,就会出现此信息的警告信息。 一旦将层添加到列表中,就必须对其进行配置。层配置取决于它的类型。除降层和归一化层外,每个层的主要参数是输出维数和激活函数。下面的文字解释了所有支持层的参数: 规范化层-不需要任何参数。下图显示了NNDesigner中的标准化项。您只能插入一个归一化层,它被放置在第一个位置。 下降层-需要百分比下降值,这是整数值。下面的图片显示了在NNDesigner中拖放层的样子。这一层没有任何约束。 嵌入层—只需要配置输出维度。该层没有任何约束。下面的图片显示了它在NNDesigner中的样子: 密集层-需要配置输出维度和激活功能。该层没有任何约束。 LSTM层-需要:输出和细胞尺寸,激活函数,和两个布尔参数,以启用窥视孔和自稳定变化的层。下图显示了LSTM项在NNDesigner中的外观。 LSTM层有一些约束,这些约束已经在代码中实现了。如果网络中增加了两个LSTM层,那么网络就变成了堆叠的LSTM,应该区别对待它们。而且,所有LSTM层都作为堆栈插入,它们不能插入到列表的不同位置。堆叠的LSTM层的实现将在后面显示。 不同的网络配置 在本节中,将列出各种网络配置,以便展示使用NNDesigner创建非常复杂的神经网络配置是多么容易。网络示例在预先计算的示例中实现,这些示例与默认的ANNdotNET安装包一起提供。 前馈网络 这个例子展示了如何实现前馈网络,有一个隐藏层和一个输出层,输出层是NNDesinger的最后一层。该示例是ANNdotNET安装包的一部分。 使用归一化层进行前馈 这个例子展示了以归一化层为第一层的前馈网络。这个配置的例子可以在ANNdotNET的安装包中找到。 具有嵌入层的前馈网络 在本例中,使用嵌入层来减少输入层的尺寸。网络配置3个嵌入层,1个隐藏层和1个输出层。该示例是ANNdotNET安装包的一部分。 深层神经网络 这个例子展示了深度神经网络的三种层次:嵌入层、下降层和密集层。该项目是ANNdotNET安装包的一部分。 LSTM深度神经网络 这个例子展示了如何配置基于LSTM的网络。该网络由归一化层、嵌入层、drop层、稠密层和LSTM层组成。该项目是ANNdotNET安装包的一部分。 堆叠LSTM神经网络 这是堆叠的LSTM网络的例子,由多个连接到堆栈的LSTM层组成。示例是安装包的一部分。 完整的示例列表可以在ANNdotNET开始页面上看到。为了打开示例,用户只需单击链接。希望这个项目对许多ml场景有用。 本文转载于:http://www.diyabc.com/frontweb/news29934.html

最新文章

  1. 1、Android Bitmap详细介绍
  2. android: 使用 IntentService
  3. Entity Framework的默认值BUG解决方法
  4. SharedPreferences保存用户登录信息
  5. 宏page_t
  6. android 利用数字证书对程序签名
  7. oracle命中率模型计算
  8. Ucenter整合Thinkphp 双向同步登录退出
  9. 线程同步synchronized,Class与Object
  10. 面试题 ARC
  11. BLE空中升级 谈(一)
  12. 使用python读取word,写入execl
  13. matolop画图
  14. Oracle中 “ORA-14551: 无法在查询中执行 DML 操作” 如何解决
  15. Scrapy 解决Scrapy安装时报错"Microsoft Visual C++ 14.0 is required"
  16. QSS独门秘籍:subcontrol
  17. c#: 界面多语言动态切换简单实现
  18. WeexSDK之注册Modules
  19. Graphviz的安装 - windows环境下
  20. Java -- JDBC 学习--通过Statement进行数据库更新操作

热门文章

  1. C# OWC11
  2. ract-native常用命令
  3. Azure Storage 系列(二) .NET Core Web 项目中操作 Blob 存储
  4. 转载过来的参考内容---常规36个WEB渗透测试漏洞描述及修复方法----很详细
  5. 使用kubernetes-event-exporter将k8s的事件导出到elasticsearch日志系统中
  6. 剑指 Offer 43. 1~n整数中1出现的次数
  7. python3之print()函数
  8. Sender(agumaster_crawler)->RabbitMq->Reciever(agumaster)
  9. 【Java】一句话获得你的IP地址
  10. Git 实用操作:撤销 Commit 提交