ENVI深度学习随机参数训练方法
深度学习的两大难点即为样本标注和参数调优。
ENVI的ROI工具、Feature Counting工具、光谱分析、下载OpenStreetMap矢量等功能,为深度学习提供了便捷的样本标注功能。
同时,ENVI深度学习提供了一个帮助调试参数的功能,工具启动是在/Deep Learning/Deep Learning Guide Map面板中如下菜单:
其实是内置的一个ENVI Modeler模型(如下图所示)。可直接运行此模型,设置简单的参数即可开始训练。其中Iterations为尝试训练的次数(默认16次)。
注:其中Input Model为初始化模型,需要首先使用Deep Learning Guide Map中的Train Model的New Model功能初始化模型,也可使用Train TensorFlow Mask Model工具初始化模型。
如果希望将某些训练参数设置为固定值,可单击Randomize Parameters for Train TensorFlow Mask Model节点中的菜单键,在弹出的对话框中进行设置(如下图所示),其他留空的参数将随机生成。ENVI提供两种随机参数生成方法(Method):
-
Random Uniform:生成均匀分布的数字。
-
Sobol Sequence(默认):生成一个非随机的数字列表,可以更好地探索可能值的范围。
如果使用的是Sobol Sequence方法,且在第一轮尝试(比如16次)之后发现没有满意的结果,可设置Iterations为大于16的值(比如30),然后单击Filter Iterator节点中的菜单键(如下图所示),设置Filter Expression为%i ge 16,则在第一轮的基础上继续尝试训练14次(30-16=14)。
如果有多台电脑,就可以分批次同时运行了。比如第一台电脑运行1~10次迭代(Iterations设置为10,Filter Expression为%i ge 0),第二台电脑运行11~20次迭代(Iterations设置为20,Filter Expression为%i ge 10)。以此类推。
其实如果16次训练都得不到好的结果,应该考虑调整或增加样本了。
如果您有足够的时间、质量够高的样本、高配置/多硬盘空间的机器,理论上来说都能得到一个较好的结果,训练参数对于结果还有影响比较大的。我已经在多个应用场景使用这个方法了,简单粗暴有效。
让模型训练跑起来吧~~~