LinxVIEW论坛-斯科道
标题:
LabVIEW/C++深度学习开源库
[打印本页]
作者:
Scadao
时间:
2019-12-5 21:56
标题:
LabVIEW/C++深度学习开源库
本帖最后由 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
2019-12-5 21:54 上传
点击文件名下载附件
1.39 MB, 下载次数: 1
欢迎光临 LinxVIEW论坛-斯科道 (http://iiotview.com/)
Powered by Discuz! X3.2