LinxVIEW论坛-斯科道

 找回密码
 立即注册
查看: 4927|回复: 0

LabVIEW/C++深度学习开源库

[复制链接]

535

主题

746

帖子

2597

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2597
发表于 2019-12-5 21:56:33 | 显示全部楼层 |阅读模式
本帖最后由 Scadao 于 2019-12-17 20:28 编辑

LabVIEW/C++深度学习开源库

LabVIEW/C++深度学习库

LabVIEW中的深度学习库。基于C++的正向神经网络实现。
编译需要Eigen库版本V3.3.5。使用VisualStudio 2015 C++编译。

当前支持的库:

1. 多特征卷积层
2. 多特征反卷积层
3. 全连接层
4. 输出层
5. 最大池化层
6. 传递层(应用一些元素函数)
7. 混合全连接层(可能概率分布输出值)
9. 网络之间的层共享
10. 侧通道层(向网络上游输入其他数据)
11. Vanilla & Wasserstein GAN训练函数

具有三种不同的非线性 ReLu、Tanh 和 Sigmoid(每一层可能不同)。
梯度下降在小批量中执行,有几种方法可用:

1. 基于动量的下降(Nesterov的加速梯度目前因技术原因被注释掉)。
2. RMSprop
3. ADAM

此外,该库提供了两种规范化模式,无论梯度步进方案如何,都可以使用。

1. 权重正则化
2. 光谱归一化

所有方法都可以在训练期间动态打开和关闭。训练期间始终可以更改所有超参数。

目前,我将其应用于"逆全息术"。下面将对此进行更多介绍。

HoloNet - 教会神经网络如何做全息

在我的研究中,我需要能够在全息光学钳位设置中创建复杂的光模式(例如,参见动态全息光学钳位,Curtis等人,2002年)。我的设置具有所谓的空间光调制器(SLM),本质上是一个液晶屏幕,800x600像素。每个像素可以推进或延迟进入激光束的相位。从理论上讲,这应该允许我以我想要的任何方式塑造光束。实际上,我需要知道应该为此 SLM 的每个像素分配哪个值来创建该特定光束形状。

这不是一个简单的问题。事实上,它的不平凡,有关于它的学术部落(总是存在)。

我认为深度学习可能是解决这个问题的一个方法。我们应该能够训练一个神经网络的正向问题(全息图强度)。反问题是下面进一步描述的一个正在进行的项目。

从数学上讲,我们希望在网络上训练的正向变换是一个非线性矩阵到矩阵的问题。我们的图像只有强度,因此没有额外的颜色通道。SLM 在光束上传递的变换不能以任何分析形式写下来,即使有可能,也需要对设置几何知识的精确了解。

下图应会给您一个转变的印象。你会看到全息图的图片,有很多条纹图案(左)和相应的激光光强度场的图片(右),这可以是相当不错的看。
(请见原始文档链接)

Neural-Net-LabView-DLL-master.zip

1.39 MB, 下载次数: 1

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|SCADAO  

GMT+8, 2024-4-19 01:19 , Processed in 0.049678 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表