精准农业旨在优化农业管理,在节约资源的同时提升产量,并最大程度降低对环境的影响。
目前,有几种技术致力于提升农业的可持续性,例如:
-
智能灌溉系统:借助传感器来优化灌溉流程;
-
精准播种系统:优化播种流程,比如调整种子之间的间距;
-
作物产量预测:帮助农民决定每个季节种植何种作物。
露点温度
在灌溉系统方面,灌溉水量不足会使植物承受压力,进而降低作物产量,过度灌溉会导致水分过多,从而滋生害虫。
合适的灌溉流程能够节省大量水资源,并保护其他资源。
影响灌溉的一个关键指标就是露点温度,露点温度反映了空气中水分的含量,而这又会对灌溉流程产生影响,所以预测露点温度有助于为水资源规划提供支持。
而且露点温度在水利、气候和农业等多个领域的其他活动中也具有重要意义。
例如,如果预报显示可能出现水分过多的情况,就可以提前采取病虫害防治措施。
预报还能用于预测霜冻,让农民可以采取预防性措施来保护作物。
在能源管理领域,预测露点温度同样重要,在露点温度较高时,人们往往会使用空调系统来应对高相对湿度。
预测这些天气状况可用于预测能源需求的增长,从而有助于提高电网的运行效率。
在本文的后续部分将对多个地点的露点温度进行预测,大家将学习如何使用深度学习构建一个时空预测模型。
实践:利用深度学习进行露点温度的时空预测
时空预测入门
时空数据是多元时间序列的一种特殊情况,这类数据集涉及在多个地点对某个变量(如露点温度)进行观测。
这类数据既包含时间依赖性,又包含空间依赖性,在特定地点采集的数据点,与该地点的滞后数据以及附近地点当前和过去的滞后数据都存在相关性。
对这两种依赖性进行建模,对于在每个地点获得更准确的预测至关重要。
时空预测通常采用向量自回归(VAR)或时空自回归(STAR)等技术。本文将采用基于深度神经网络的 VAR 方法。
数据集
本文将使用由美国农业部收集的真实数据集,该数据集包含露点温度等信息,该变量在 6 个附近站点进行了采集。
数据集来源:
https://agdatacommons.nal.usda.gov/articles/dataset/Data_From_Weather_Snow_and_Streamflow_data_from_four_western_juniper-dominated_Experimental_Catchments_in_south_western_Idaho_USA_/24660384?file=44334665
下载数据后,可使用以下代码读取:
import pandas as pd
# 日期时间列名列表
DATE_TIME_COLS = ['month', 'day', 'calendar_year', 'hour', 'water_year']
# 读取数据集
data = pd.read_csv(filepath)
# 解析datetime列
data['datetime'] =
pd.to_datetime([f'{year}/{month}/{day} {hour}:00'
for year, month, day, hour in zip(data['calendar_year'],
data['month'],
data['day'],
data['hour'])])
# 删除原始日期时间列并设置datetime为索引
data = data.drop(DATE_TIME_COLS, axis=1).set_index('datetime')
# 移除列名中的'_dpt_C'后缀
data.columns = data.columns.str.replace('_dpt_C', '')
数据呈现如下:
不同地点的时序数据似乎存在相关性。
VAR——为监督学习准备数据
本文采用 VAR 方法来准备数据,以便训练深度神经网络,VAR 方法旨在捕捉不同变量之间的时间依赖性。
在本例中,这些变量代表在 6 个地点采集的露点温度。
我们可以通过使用滑动窗口将每个变量转换为矩阵格式,然后合并结果来实现这一点。
from sklearn.model_selection import train_test_split
from src.tde import transform_mv_series
# 滞后阶数和预测步长
N_LAGS, HORIZON = 12, 12
# 站点数量(数据列数)
N_STATIONS = data.shape[1]
# 保留最后20%的数据作为测试集
train, test = train_test_split(data, test_size=0.2, shuffle=False)
# 计算训练集中每个序列的平均值
mean_by_location = train.mean()
# 均值缩放:将每个序列除以其平均值
train_scaled = train / mean_by_location
test_scaled = test / mean_by_location
# 将数据转换为监督学习格式
X_train, Y_train = transform_mv_series(train_scaled, n_lags=N_LAGS, horizon=HORIZON)
X_test, Y_test = transform_mv_series(test_scaled, n_lags=N_LAGS, horizon=HORIZON)
接下来,我们基于 Keras 构建一个堆叠式 LSTM 模型。
(长短期记忆网络LSTM是一种特殊的循环神经网络,能够捕捉时间依赖性。)
from keras.models import Sequential
from keras.layers import Dense, Dropout, LSTM, RepeatVector, TimeDistributed
model = Sequential()
model.add(LSTM(64, activation='relu', input_shape=(N_LAGS, N_STATIONS)))
model.add(Dropout(.2))
model.add(RepeatVector(HORIZON))
model.add(LSTM(32, activation='relu', return_sequences=True))
model.add(Dropout(.2))
model.add(TimeDistributed(Dense(N_STATIONS)))
model.compile(optimizer='adam', loss='mse')
定义并编译模型后,可按以下方式进行训练:
from keras.callbacks import ModelCheckpoint
# 模型检查点,用于在训练期间保存最佳模型
model_checkpoint = ModelCheckpoint(
filepath='best_model_weights.h5', # 保存模型权重的文件路径
save_weights_only=True, # 只保存权重而非整个模型
monitor='val_loss', # 监控验证集损失
mode='min', # 监控指标的最小化模式
save_best_only=True) # 只保存最佳模型
# 训练模型
history = model.fit(X_train, Y_train,
epochs=25, # 训练轮数
validation_split=0.2, # 验证集比例
callbacks=[model_checkpoint]) # 使用的回调函数
训练完成后,可加载模型检查点回调所保存的最佳权重:
# 训练完成后,将最佳模型权重加载到模型中
model.load_weights('best_model_weights.h5')
# 在测试集上进行预测
preds = model.predict_on_batch(X_test)
模型拓展
我们可以从多个方面拓展该模型,例如将其他气象信息作为解释变量纳入模型。
露点温度等气象数据会受到多种因素的影响,将这些因素纳入模型可能是提高预测性能的关键。
尝试其他神经网络架构也可能带来提升,文中采用了堆叠式 LSTM,但其他方法也展现出了良好的预测性能,例如 N-BEATS、DeepAR 或 ES-RNN。
我们还可以纳入空间信息,如地理坐标,这样模型就能更好地模拟不同地点之间的空间依赖性。
总结
精准农业旨在优化农业流程,这种优化可以降低农业对环境的影响,露点温度是水文学中的一个关键指标,预测该变量对灌溉等多种活动有益。
气象变量通常在多个站点进行采集,从而形成时空数据集,深度学习可用于构建时空预测模型。
本文使用包含六个不同地点露点温度的数据集训练了一个 LSTM 神经网络,这个模型可以通过纳入额外的解释变量、空间信息或改变网络架构等方式进行拓展。
一、大模型风口已至:月薪30K+的AI岗正在批量诞生
2025年大模型应用呈现爆发式增长,根据工信部最新数据:
国内大模型相关岗位缺口达47万
初级工程师平均薪资28K
70%企业存在"能用模型不会调优"的痛点
真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!
二、如何学习大模型 AI ?
🔥AI取代的不是人类,而是不会用AI的人!麦肯锡最新报告显示:掌握AI工具的从业者生产效率提升47%,薪资溢价达34%!🚀
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工
📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
* 大模型 AI 能干什么?
* 大模型是怎样获得「智能」的?
* 用好 AI 的核心心法
* 大模型应用业务架构
* 大模型应用技术架构
* 代码示例:向 GPT-3.5 灌入新知识
* 提示工程的意义和核心思想
* Prompt 典型构成
* 指令调优方法论
* 思维链和思维树
* Prompt 攻击和防范
* …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
* 为什么要做 RAG
* 搭建一个简单的 ChatPDF
* 检索的基础概念
* 什么是向量表示(Embeddings)
* 向量数据库与向量检索
* 基于向量检索的 RAG
* 搭建 RAG 系统的扩展知识
* 混合检索与 RAG-Fusion 简介
* 向量模型本地部署
* …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
* 为什么要做 RAG
* 什么是模型
* 什么是模型训练
* 求解器 & 损失函数简介
* 小实验2:手写一个简单的神经网络并训练它
* 什么是训练/预训练/微调/轻量化微调
* Transformer结构简介
* 轻量化微调
* 实验数据集的构建
* …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
* 硬件选型
* 带你了解全球大模型
* 使用国产大模型服务
* 搭建 OpenAI 代理
* 热身:基于阿里云 PAI 部署 Stable Diffusion
* 在本地计算机运行大模型
* 大模型的私有化部署
* 基于 vLLM 部署大模型
* 案例:如何优雅地在阿里云私有部署开源大模型
* 部署一套开源 LLM 项目
* 内容安全
* 互联网信息服务算法备案
* …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】