首页 > 其他分享 >ENVI新机器学习:ENVITask 使用说明

ENVI新机器学习:ENVITask 使用说明

时间:2022-12-29 14:25:26浏览次数:56  
标签:Task 机器 DataPrepTask TrainTask ENVITask ENVI model

随着 ENVI 5.6.3 和 ENVI Deep Learning 2.0 的发布,带来了 ENVI Machine Learning(机器学习)功能,该功能不需要额外的许可,只需要 ENVI 主模块许可,并安装 ENVI 深度学习 2.0 版本应用程序,便可使用新机器学习的工具。

可以访问如下系列文章进行了解:

https://www.cnblogs.com/enviidl/category/2258432.html

 

1 ENVITask 介绍

目前,ENVI 机器学习提供了如下 ENVITask:

功能

ENVITask

栅格标准化统计

NormalizationStatistics Task

准备训练数据

MLTrainingDataFromROIs Task

MLTrainingDataFromSpectralLibrary Task

训练模型

TrainBirch Task

TrainExtraTrees Task

TrainIsolationForest Task

TrainKNeighbors Task

TrainLinearSVM Task

TrainLocalOutlierFactor Task

TrainMiniBatchKMeans Task

TrainNaiveBayes Task

TrainRandomForest Task

TrainRBFSVM Task

机器学习分类

MachineLearningClassification Task

 

而我们调用 ENVITask 实现机器学习分类的步骤与上表顺序一致,通常需要 4 个 ENVITask 构建流程,分别用于栅格标准化统计、准备训练数据、模型训练、机器学习分类

 

2 调用示例

随机森林为例进行介绍,其他算法类似。可查看帮助获取更多示例代码。

以下是一个完整的机器学习流程。

PRO example_RandomForest
  COMPILE_OPT idl2
  e = ENVI()

  ;打开栅格和样本
  RasterFile = FILEPATH('qb_boulder_msi',subdir=['data'], $
    root_dir=e.Root_Dir)
  Raster = e.OpenRaster(RasterFile)
  ROIFile = FILEPATH('qb_boulder_roi.xml',subdir=['data'],$
    root_dir=e.Root_Dir)
  ROI = e.OpenROI(ROIFile)

  ;栅格标准化统计
  StatsTask = ENVITask('NormalizationStatistics')
  StatsTask.INPUT_RASTERS = Raster
  StatsTask.Execute

  ;准备训练数据
  DataPrepTask = ENVITask('MLTrainingDataFromROIs')
  DataPrepTask.INPUT_RASTER = Raster
  DataPrepTask.INPUT_ROI = ROI
  ;如果设置了 BACKGROUND_LABELS,这些类别将被作为背景类处理
  ;DataPrepTask.BACKGROUND_LABELS = ['Disturbed Earth', 'Water']
  DataPrepTask.NORMALIZE_MIN_MAX = StatsTask.Normalization
  DataPrepTask.Execute

  ;训练模型
  TrainTask = ENVITask('TrainRandomForest')
  TrainTask.INPUT_RASTER = DataPrepTask.OUTPUT_RASTER
  TrainTask.NUM_ESTIMATORS = 100
  ;如果希望保存训练后模型到本地文件,可设置此参数
  TrainTask.OUTPUT_MODEL_URI = 'C:\temp\trained_rf_model.json'
  TrainTask.Execute

  ;机器学习分类
  ClassifyTask = ENVITask('MachineLearningClassification')
  ClassifyTask.INPUT_RASTER = Raster
  ClassifyTask.INPUT_MODEL = TrainTask.OUTPUT_MODEL
  ClassifyTask.Execute

  ;将结果添加到 Data Manager,并加载显示输入图像和分类结果
  DataColl = e.Data
  DataColl.Add, ClassifyTask.OUTPUT_RASTER
  View = e.GetView()
  Layer = View.CreateLayer(Raster)
  Layer = View.CreateLayer(ClassifyTask.OUTPUT_RASTER)
END

 

此外,还有一个程序 ENVIMachineLearningModel,可以打开已训练模型文件、获取模型信息、用于分类其他图像。

ENVI> model_file = 'C:\temp\trained_rf_model.json'
ENVI> ;打开模型
ENVI> model = ENVIMachineLearningModel(model_file)
ENVI> ;获取model名称
ENVI> model.NAME
Random Forest Supervised Classifier
ENVI> ;获取model类型
ENVI> model.MODEL_TYPE
RandomForest
ENVI> ;获取model类别信息
ENVI> model.LABELS
Background
Disturbed Earth
Bright Roof
Water
ENVI> model.COLORS
                     0                     0                     0
                   240                   240                     0
                   255                     0                     0
                    29                    29                   255
ENVI> model.NCLASSES
                     4
ENVI> ;关闭模型
ENVI> model.Close

 

标签:Task,机器,DataPrepTask,TrainTask,ENVITask,ENVI,model
From: https://www.cnblogs.com/enviidl/p/17012397.html

相关文章

  • 8月6日讲座视频 | 图神经网络、深度强化学习和机器学习应用
    本期讲堂(8月6日)我们邀请了北京大学宋国杰、北京邮电大学乔媛媛和神策数据胡士文给大家带来三场技术报告:《图表示学习》、《深度强化学习与智能体》、《机器学习在神策数据的......
  • 【编程实践】利用 Python 调用图灵机器人 API 实现实时语音聊天及自动回复
    前言什么是图灵机器人在人工智能技术飞速发展的今天,很多以前科幻电影里面的高科技都已经变为现实,而且充斥着我们生活的方方面面,比如说机器人,说说话就能把很多时办了。生......
  • 机器学习:Transformer
    目录简介SelfAttention(自注意力机制)Multi-HeadSelfAttention位置编码TransformerBERT简介Transformer由Google在2017提出,是基于注意力机制的模型https://ar......
  • [JSOI2018]机器人
    题目描述一个\(n\timesm\)的网格,有一个机器人一开始在\((1,1)\),每次机器人可以向右或向下走一步,\((i,m)\)的右边是\((i,1)\),\((n,j)\)的下边是\((1,j)\),机器人需要不重......
  • 《李沐实用机器学习之5.2 Bagging》
    slides:https://c.d2l.ai/stanford-cs329p/_static/pdfs/cs329p_slides_7_2.pdf视频:https://www.bilibili.com/video/BV13g411N7xy/?spm_id_from=333.999.0.0&vd_source=......
  • 干货 | 林轩田机器学习「基石+技法」历史文章汇总
    AI有道一个有情怀的公众号台湾大学林轩田机器学习经典课程:「机器学习基石」和「机器学习技法」。课程由浅入深、内容全面,基本涵盖了机器学习领域的很多方面,还包括......
  • 【通俗易懂】机器学习中 L1 和 L2 正则化的直观解释
    微信公众号:AI有道(ID:redstonewill)机器学习中,如果参数过多,模型过于复杂,容易造成过拟合(overfit)。即模型在训练样本数据上表现的很好,但在实际测试样本上表现的较差,不具备良好的......
  • 机器人武术擂台---无差别组(四)底层配置
    机器人武术擂台---无差别组(四)底层配置做一份笔记,大佬勿喷。作者:sumjess注意:本博客是以《2018年华北五省(市、自治区)大学生机器人大赛竞赛规则》为基础而写的@@@@@@@@@一共写......
  • QT画机器人
    #include<QtWidgets>#include"robot.h"RobotPart::RobotPart(QGraphicsItem*parent):QGraphicsObject(parent),color(Qt::lightGray),dragOver(false){setAcc......
  • 下载量过百万的吴恩达机器学习和深度学习笔记更新了!(附PDF下载)
    今天,我把吴恩达机器学习和深度学习课程笔记都更新了,并提供下载,这两本笔记非常适合机器学习和深度学习入门。(作者:黄海广)0.导语我和同学将吴恩达老师机器学习和深度学习课程笔......