基于MATLAB的BP神经网络反演水质参数

2024-02-06 00:38

本文主要是介绍基于MATLAB的BP神经网络反演水质参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点滴学习,贵在记录

基于MATLAB的BP神经网络反演水质参数

在做一个关于水质反演的项目时,常规模型精度较低,因此考虑采用bp神经网络来做反演。我要实现的是基于样本数据训练BP神经网络,然后基于此导入tif影像数据,然后得到水质参数的空间分布影像(带坐标系)。

读取样本点。将k个样本点分成训练集和测试集,我的样本点数据为k*4的矩阵,k为样本点个数,4为波段数。数据需要转置后并进行归一化处理才可导入net模型。建立神经网络采用newff()函数,训练后的数据性需要进行转成反演值。

% 神经网络建立
net=feedforwardnet(hiddenSizes,trainFcn)

hiddenSizes:神经元个数,默认单层10个。
trainFcn:训练函数,默认’trainlm’

%  数据归一化
[INPUT_train, ps_input] = mapminmax(input_train,0,1);
% 反归一化
T_sim = mapminmax('reverse',t_sim,ps_output);

模型训练完成便可做预测,对水质参数进行反演

首先读取影像,
影像为m×n×l的多光谱影像。需要转成m×n行,l 列的矩阵,然后转置成l行,m×n列的矩阵,代码实现如下

[A,R] = geotiffread('F:\DEMO\DEMO1.tif')
info = geotiffinfo('F:\DEMO\DEMO1.tif')
%转为m*n,l矩阵
a = double(reshape(A,[info.Height*info.Width,4]))
%影像转置
inputimg = a(:,:)';

归一化后做仿真测试,得到反演结果并输出tif格式的影像。
outimg = sim(net,Inputimg)

更新
新版本的MATLAB里面,前馈神经网络已经函数已经改为 feedforwardnet()

2022.1.17更新
注意!输出的结果需要reshape成输入影像的长宽。

outimg = reshape(outimg, [info.Height, info.Width])

这篇关于基于MATLAB的BP神经网络反演水质参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/682670

相关文章

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

hdu6053 TrickGCD 莫比乌斯反演

TrickGCD Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Problem Description You are given an array  A  , and Zhu wants to know there are how many d

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87