新闻详情

新闻详情

首页 / 资讯中心 / 详情

Python天气预测项目实战:数据清洗、ARIMA与LSTM建模及可视化

发布时间:2026/9/13 16:03:30来源:尧图网络
Python天气预测项目实战:数据清洗、ARIMA与LSTM建模及可视化
简介面向计算机专业正在准备毕业设计、课程设计或期末大作业的学生这份高分项目资料基于Python完整实现了天气数据爬取、清洗、预测与可视化链路评审分为98分可直接作为项目参考或二次开发基础。包内共24个文件涵盖Python源码py、天气数据集csv、训练模型pkl、网页可视化html、说明文档md以及运行效果截图jpg等压缩包仅1.42MB轻量易用。已有466人学习下载项目含GetData、ProcessData、GetModel、main等核心脚本配套date_train、date_test、china_today等多份数据文件可帮助读者快速理解从数据采集到模型预测再到可视化展示的完整流程。对于需要动手实践Python数据分析与机器学习的学生这份资料结构清晰、可运行性强适合用于课程设计与毕业设计参考。1. 天气预测与可视化项目的四条主线这种标题的 Python 项目多数是课程设计或毕业设计里要有数据、要有模型、要有图的综合性任务。拆开看核心是四条线历史天气数据怎么拿、怎么清洗成能喂给模型的时间序列预测用哪种模型才既不翻车也不过度以及最后怎么用图表把预测结果讲清楚。数据资料部分通常决定项目的下限——数据脏后面模型和图表再漂亮也站不住而源码组织和文档说明则决定答辩时能讲多深这两个环节恰恰是高分项目和能跑项目的分水岭。适合的读者分两类一类是 Python 语法已经会了但没碰过时间序列的开发者想用一个小项目把 pandas、statsmodels、深度学习框架串起来另一类是打算在简历上放一条数据清洗 预测建模 可视化展示完整链路的从业者。下面按数据准备、模型实现、可视化、交付收尾的顺序展开中间穿插可以直接抄的参数和踩坑点。2. 天气数据清洗与时间序列预处理预测结果的前置保障2.1 数据字段设计与常见来源天气预测项目的第一个技术决策是数据粒度。公开渠道能拿到的历史天气数据通常分三档逐小时、逐日、逐月。预测未来 3 到 7 天气温走势时逐日数据足够而且能避开小时级数据里白天黑夜的周期性波动逐月数据则太粗基本只能看趋势。常见做法是直接找现成的历史气象 CSV字段至少包含日期、平均气温、最高气温、最低气温、湿度、气压、风速。字段类型说明预测中的用途datedatetime观测日期时间索引与趋势分解tempfloat日平均气温℃预测目标值temp_max / temp_minfloat当日最高 / 最低气温辅助特征或第二目标humidityfloat相对湿度%特征pressurefloat海平面气压hPa特征wind_speedfloat平均风速m/s特征拿到数据后第一件事不是建模而是确认时间索引是否连续。很多数据源存在节假日缺测、设备维护导致的连续空窗直接建模会让模型的滞后项错位——上一行的值被当成上一天的值误差会顺着时间轴一路传下去。2.1.1 时间序列读取与连续性检查用 pandas 读取时把日期列显式转成 DatetimeIndex这是整个项目后面所有操作的前提。以下代码是数据准备阶段的第一段脚本import pandas as pd # 读取原始数据date 列直接解析为时间类型 df pd.read_csv(data/raw/weather_history.csv, parse_dates[date]) # 按日期排序并设为索引 df.sort_values(date, inplaceTrue) df.set_index(date, inplaceTrue) # 检查时间索引是否连续日频数据 full_range pd.date_range(startdf.index.min(), enddf.index.max(), freqD) missing_dates full_range.difference(df.index) print(f缺失日期数量: {len(missing_dates)}) print(missing_dates[:10])parse_dates参数让 pandas 在读取时就把日期列转成 datetime 类型省去之后手动to_datetime的步骤。freqD表示按天生成完整日期序列用difference找出原始索引里缺哪些天。这一段看起来不起眼但缺日期不补后面shift(1)构造滞后特征时会把上一行当作上一天误差会直接传导进模型。2.2 缺失值、异常值与重复值的处理策略天气数据最常见的三种脏数据是传感器瞬时故障产生的离群点、整段缺测的时间窗、以及同一天重复出现的重复记录。处理顺序建议是先查重、再补缺、最后做异常值替换。顺序反过来的风险是重复记录会导致缺失值统计和异常值判断都失真。import numpy as np # 1. 去除同日期重复的记录保留第一条 df df[~df.index.duplicated(keepfirst)] # 2. 数值列缺失值先用时间线性插值 numeric_cols [temp, humidity, pressure, wind_speed] df[numeric_cols] df[numeric_cols].interpolate(methodtime) # 3. 超过均值±3σ 的值视为异常置空后向前填充 for col in numeric_cols: mean df[col].mean() std df[col].std() df.loc[np.abs(df[col] - mean) 3 * std, col] np.nan df[col] df[col].fillna(methodffill)interpolate(methodtime)会按时间间隔比例估算缺失值比单纯用前后均值更贴近真实变化趋势。3σ 规则对气温这类近似正态分布的字段有效但风速和湿度偏态明显可以改用百分位数截断比如把超过 99.5% 分位数的值视为异常。注意最后用ffill是因为前两步之后残留的缺失值已经很少向前填充是成本最低的兜底方案如果某个字段缺失超过 20%应该回源头找数据而不是硬填。2.3 重采样与特征工程让模型拿到有规律的时间序列原始数据如果是小时级需要先聚合到日级再进模型。聚合法则要跟字段含义匹配气温用日均值、最高温和用max、风速用均值。这里有个容易犯的错把小时数据 resample 成天的时候直接用默认的 mean 会把最高最低温也算成平均特征含义就变了。# 小时级数据聚合到日级 df_daily df.resample(D).agg({ temp: mean, temp_max: max, temp_min: min, humidity: mean, pressure: mean, wind_speed: mean, }) df_daily df_daily.dropna(subset[temp])聚合完成后给模型加两类特征滞后特征和滑动统计特征。滞后特征告诉模型昨天的气温是多少滑动均值特征告诉模型近一周的趋势方向。LSTM 这类模型能自己从窗口里学到时间依赖但 ARIMA 和普通回归模型非常依赖这些人工特征少了它们预测基本靠猜。# 特征工程滞后 1 天 / 7 天 7 日滑动均值 df_daily[temp_lag1] df_daily[temp].shift(1) df_daily[temp_lag7] df_daily[temp].shift(7) df_daily[temp_ma7] df_daily[temp].rolling(7).mean() # 只保留有完整历史特征的样本 df_feat df_daily.dropna() print(df_feat.shape)shift(1)会把整列下移一行rolling(7).mean()则是每 7 天一个窗口的均值窗口含当前行。这两个操作都会让前几行产生 NaN最后统一dropna删掉。特征粒度决定了模型上限如果预测目标是未来 3 天均值而特征只给了当天数据模型等于在猜盲盒这点在文档说明的数据分析部分值得专门写一段。3. 天气预测模型代码实现ARIMA 基线到 LSTM 扩展3.1 先立基线为什么天气预测从 ARIMA 开始气象机构做预报用的是数值模式但课程设计和工程演示根本不需要复现那一套。单变量气温预测里ARIMA 是性价比最高的起点数据要求低、训练快、参数含义能讲清楚。用它的前提是序列近似平稳所以建模前必须做单位根检验这一步在 Python 里一行调用就能完成。from statsmodels.tsa.stattools import adfuller # ADF 检验p 值小于 0.05 认为序列平稳 adf_result adfuller(df_daily[temp].dropna()) print(ADF p-value:, adf_result[1])p 值通常大于 0.05说明原始气温序列不平稳——这很正常气温有年度季节性。处理办法是对序列做一阶差分差分后的序列再跑一次 ADF。实际操作里我不建议手工反复试差分阶数直接让 ARIMA 把差分阶数设为 1 即可模型内部会完成差分比手动处理更省事也更不容易出错。3.1.1 ARIMA 参数确定p、d、q 的取值策略ARIMA 的三个参数含义p是自回归项数q是移动平均项数d是差分阶数。确定p和q的标准做法是看 ACF 和 PACF 图的截尾情况但这对新手不友好。工程上更快的路径是写一个循环遍历若干组(p, q)组合用 AIC 选最小的。AIC 同时惩罚拟合残差和参数数量能够避免模型靠无脑加参数换取低误差。import warnings from statsmodels.tsa.arima.model import ARIMA warnings.filterwarnings(ignore) best_aic float(inf) best_order None for p in range(0, 4): for q in range(0, 4): try: model ARIMA(df_daily[temp], order(p, 1, q)) result model.fit() if result.aic best_aic: best_aic result.aic best_order (p, 1, q) except Exception: continue print(最优参数:, best_order, AIC:, best_aic) # 用最优参数重新拟合 final_model ARIMA(df_daily[temp], orderbest_order) fitted final_model.fit() print(fitted.summary())遍历 16 组参数在这个数据量下也就是几秒钟的事远比人工看图靠谱。order(p, 1, q)里的 1 就是差分阶数处理非平稳性。fitted.summary()会输出每个系数的 p 值如果某个系数显著性很差可以把对应参数降一档重新拟合。这个细节写进文档说明比贴十行理论都加分因为评审能看出你确实调过参而不是跑通就完事。3.2 预测未来 7 天并输出置信区间ARIMA 拟合完成后用get_forecast生成未来 7 天的预测值。这一步不建议用forecast()方法因为它只给点预测不给区间。置信区间的上下界画在图上能让用户直观看到预测的不确定性——离今天越远区间越宽这是天气预测可视化里最有信息量的一张图。import pandas as pd # 预测未来 7 天 forecast_result fitted.get_forecast(steps7) pred_mean forecast_result.predicted_mean conf_int forecast_result.conf_int(alpha0.2) # 生成未来日期索引 future_dates pd.date_range( startdf_daily.index[-1] pd.Timedelta(days1), periods7, freqD ) pred_df pd.DataFrame({ pred: pred_mean.values, lower: conf_int.iloc[:, 0].values, upper: conf_int.iloc[:, 1].values }, indexfuture_dates) print(pred_df.round(2))alpha0.2表示 80% 置信区间比默认的 95% 更贴合天气预测的展示习惯——气象预报本身允许一定的误差带太宽的区间画出来反而没有参考价值。conf_int返回的是两列 DataFrame分别取第 0 列和第 1 列作为上下界。pd.Timedelta(days1)从最后一天往后推一天保证预测日期从明天开始不会跟训练集最后一天重叠。3.3 LSTM 扩展窗口化、归一化与训练如果项目要求模型看起来更进一层在 ARIMA 之上加一个 LSTM 分支就够了。LSTM 做单变量气温预测的套路很固定MinMaxScaler 归一化、滑窗构造样本、按时间顺序切分训练集和测试集。有一条原则必须守住归一化只能对训练集 fit测试集用同一组参数 transform否则会发生信息泄漏测试误差会虚低评审追问时很难解释清楚。import numpy as np from sklearn.preprocessing import MinMaxScaler # 取温度序列归一化到 [0,1] series df_daily[temp].values.reshape(-1, 1) scaler MinMaxScaler(feature_range(0, 1)) scaled scaler.fit_transform(series) # 滑窗用过去 7 天预测未来 1 天 def make_windows(data, window7): X, y [], [] for i in range(len(data) - window): X.append(data[i:iwindow, 0]) y.append(data[iwindow, 0]) return np.array(X), np.array(y) X, y make_windows(scaled, window7) # 按 8:2 切分切分点必须落在时间轴后半段 split int(len(X) * 0.8) X_train, X_test X[:split], X[split:] y_train, y_test y[:split], y[split:]窗口大小window7对应用一周数据预测明天。make_windows里data[i:iwindow]是连续切片第iwindow个点作为标签每个样本在时间上滑动一格数据量约为原始序列长度减 7。切分用的是位置索引而不是随机函数这是时间序列与普通机器学习分类任务最本质的区别——一旦打乱模型就学会了偷看未来。3.3.1 模型结构与训练参数LSTM 结构不用太深两层即可。第一层设return_sequencesTrue是为了把完整序列传给第二层 LSTM最后一层用线性输出单元预测数值因为温度预测是回归问题输出层不加激活函数。from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense, Dropout # 输入形状: (样本数, 时间步长, 特征数) model Sequential([ LSTM(64, return_sequencesTrue, input_shape(7, 1)), Dropout(0.2), LSTM(32), Dropout(0.2), Dense(1) ]) model.compile(optimizeradam, lossmse) history model.fit( X_train.reshape(-1, 7, 1), y_train, epochs50, batch_size32, validation_split0.1, verbose0 )epochs50对这个数据量够用跑太多会过拟合。Dropout(0.2)在两层之间随机丢弃 20% 的神经元防止模型死记训练数据。validation_split0.1从训练集尾部切 10% 做验证用来判断什么时候该停——如果验证集 loss 在最后几个 epoch 不降反升说明拟合过头可以把 epochs 降到 30 重跑。预测时记得把结果反归一化回真实温度单位# 用训练好的模型预测并还原到原始量纲 pred_scaled model.predict(X_test.reshape(-1, 7, 1)) pred_temp scaler.inverse_transform(pred_scaled).ravel() y_test_temp scaler.inverse_transform(y_test.reshape(-1, 1)).ravel()3.4 模型评估指标MAE 与 RMSE 的取舍评估预测质量只用 R² 不够天气预测更看重绝对误差。MAE 反映平均偏差RMSE 对大的偏差敏感——一次差 5℃ 的预测会让 RMSE 涨一大截而 MAE 只会平滑地增加。两个指标一起看差异越大说明误差分布越不匀存在少数极端偏差样本。from sklearn.metrics import mean_absolute_error, mean_squared_error mae mean_absolute_error(y_test_temp, pred_temp) rmse mean_squared_error(y_test_temp, pred_temp, squaredFalse) print(fLSTM 测试集 MAE: {mae:.2f} ℃) print(fLSTM 测试集 RMSE: {rmse:.2f} ℃)指标数值含义何时优先MAE平均每个预测点偏差多少 ℃关注日常平均表现RMSE对大幅偏差惩罚更重关注极端误差事件R²模型解释的方差比例横向对比不同模型个人习惯是 MAE 为主、RMSE 为辅。一天里气温波动本身就有好几摄氏度MAE 能压到 1.5℃ 以内这个模型在课程设计层面就合格了。ARIMA 和 LSTM 要用同一段测试集去对比先跑出两套误差再决定文档里以哪个模型为主这样得出的结论站得住。4. 预测结果可视化Matplotlib 静态图与 PyECharts 大屏4.1 静态图表历史趋势与预测区间的组合图可视化的第一张图应该是历史 预测 置信区间三合一的组合图。它能回答一个核心问题预测值放在整个历史走势里是否合理。用 Matplotlib 画这张图关键点是历史数据用实线、预测用虚线、置信区间用半透明填充三者颜色拉开层次。另一个容易被忽略的细节是只画最近一段历史全量画出来曲线会被压缩成一条实心带。import matplotlib.pyplot as plt # 中文字体设置避免标签乱码 plt.rcParams[font.sans-serif] [SimHei, Arial Unicode MS] plt.rcParams[axes.unicode_minus] False fig, ax plt.subplots(figsize(14, 6)) # 只画最近 90 天历史避免曲线被拉平 ax.plot(df_daily.index[-90:], df_daily[temp][-90:], color#2E86C1, linewidth1.5, label历史气温) ax.plot(pred_df.index, pred_df[pred], color#E74C3C, linewidth2, linestyle--, label预测气温) ax.fill_between(pred_df.index, pred_df[lower], pred_df[upper], color#E74C3C, alpha0.15, label80% 置信区间) ax.set_title(未来 7 天气温预测) ax.set_xlabel(日期) ax.set_ylabel(气温 (℃)) ax.legend() ax.grid(alpha0.3) plt.xticks(rotation45) plt.tight_layout() plt.savefig(output/temperature_forecast.png, dpi150)fill_between的三个参数分别是 x 轴、下界、上界alpha0.15让填充区域不遮挡后面的网格线和数据线。dpi150是折中值插入文档够清晰文件体积也可控。如果系统里没有中文字体SimHei会失效备选的Arial Unicode MS在 macOS 上常见两个一起写能覆盖多数环境。4.2 交互式可视化从 PyECharts 到可适配的可视化大屏如果项目展示环节需要可视化大屏效果PyECharts 是比 Matplotlib 更省力的方案。它生成 HTML 文件浏览器直接打开自带缩放和悬浮提示不需要前端基础。PyECharts 的坐标系和数据接口与 Matplotlib 完全不同核心是add_xaxis和add_yaxis成对调用数据以普通 Python 列表传入。from pyecharts.charts import Line from pyecharts import options as opts # 准备展示数据 dates list(pred_df.index.strftime(%m-%d)) pred_values [round(v, 1) for v in pred_df[pred]] lower_values [round(v, 1) for v in pred_df[lower]] upper_values [round(v, 1) for v in pred_df[upper]] line ( Line(init_optsopts.InitOpts(width900px, height500px)) .add_xaxis(dates) .add_yaxis(预测气温, pred_values, is_smoothTrue, linestyle_optsopts.LineStyleOpts(width3)) .add_yaxis(下界, lower_values, linestyle_optsopts.LineStyleOpts(type_dashed, width1), label_optsopts.LabelOpts(is_showFalse)) .add_yaxis(上界, upper_values, linestyle_optsopts.LineStyleOpts(type_dashed, width1), label_optsopts.LabelOpts(is_showFalse)) .set_global_opts( title_optsopts.TitleOpts(title未来 7 天气温预测走势), tooltip_optsopts.TooltipOpts(triggeraxis), datazoom_opts[opts.DataZoomOpts()], legend_optsopts.LegendOpts(pos_top5%), ) ) line.render(output/forecast_interactive.html)datazoom_opts提供底部滚动条数据长了可以拖动查看这是大屏场景里的刚需。上下界曲线用label_opts把数值标签隐藏避免图上数字密密麻麻影响可读性。多个图卡拼成大屏时每个 PyECharts 图都是独立 HTML常见做法是写一个简单的网格式页面用 iframe 把各图表嵌进去再统一设置深色背景和固定像素尺寸。大屏适配的关键是图表宽度用固定像素而不是百分比否则不同分辨率下会产生横向滚动条。4.3 预测误差分布图验证模型而不是只展示结果第四章里容易被忽视的是误差分布图。把测试集每个预测点的误差画成直方图能直观看出模型是系统性偏高还是偏低。如果直方图整体往正方向偏移说明模型系统性高估气温需要回头检查序列是否做了中心化处理或者训练集里是否混入了异常偏暖的样本。import numpy as np errors y_test_temp - pred_temp fig, ax plt.subplots(figsize(8, 4)) ax.hist(errors, bins20, color#5499C7, edgecolorwhite, alpha0.85) ax.axvline(0, color#E74C3C, linestyle--, linewidth1.2) ax.set_title(预测误差分布) ax.set_xlabel(误差 (℃)) # 输出均值误差接近 0 说明无系统偏差 print(f偏差均值: {np.mean(errors):.3f} ℃)axvline在误差为 0 的位置画一条参考线直方图主体落在参考线两侧、均值接近 0模型就没有明显系统偏差。偏差均值这个数字可以顺手写进文档说明的数据分析部分比只放一张预测图更有说服力评审看到的是你做了结果校验而不是只交付了图片。5. 源码目录规范、README 文档与预测误差验证技巧5.1 让源码像高分项目的目录结构项目评审时先看目录再看代码。一套干净的目录结构比花哨的算法更能说明工程素养。常见做法是把数据、源码、输出、文档四类东西物理隔离运行脚本时统一用相对路径避免出现把个人电脑路径写死的代码换台机器就崩。weather-forecast/ ├── data/ │ ├── raw/ # 原始数据只读不写 │ └── processed/ # 清洗后的数据 ├── src/ │ ├── __init__.py │ ├── data_clean.py # 数据清洗与特征工程 │ ├── train_arima.py # ARIMA 训练与预测 │ ├── train_lstm.py # LSTM 训练与预测 │ └── visualize.py # 图表生成 ├── output/ # 图片与 HTML 输出 ├── requirements.txt └── README.mdrequirements.txt列出项目依赖评阅环境里pip install -r requirements.txt一步装齐。__init__.py让src变成可导入的 Python 包train_arima.py里就能写from src.data_clean import load_processed_data模块化程度立刻上一个档次也方便评阅人按文件顺序读代码。5.2 README 文档的三个必写段落文档说明不需要长篇大论三个段落缺一不可环境要求与安装步骤、运行顺序、结果文件说明。运行顺序尤其重要评审老师会照着 README 实际跑一遍如果visualize.py在两个训练脚本之前运行会因为缺少模型文件直接报错印象分立刻打折。README 里给出一段可复制的启动命令# 安装依赖 pip install -r requirements.txt # 按顺序执行 python src/data_clean.py python src/train_arima.py python src/train_lstm.py python src/visualize.py环境准备阶段如果机器上没有 Python需要先按 python 安装教程配好 3.8 以上版本并在虚拟环境里执行 pip 安装命令避免依赖冲突污染系统环境。README 把这一步写进环境要求段落评阅人就不会在第一步卡住运行记录也会顺畅很多。5.3 验证误差时最容易踩的三个坑误差验证阶段有三个高频问题。一是用训练集误差替代测试集误差数据量小的时候训练误差好看到失真必须留出尾部一段真实数据做测试。二是在多步预测里把真实值喂进模型——比如预测第 3 天时把第 2 天的真实值作为特征这是信息泄漏会让误差虚低到几乎为零答辩时一问一个准。三是归一化时对全量数据fit_transform正确做法是只对训练集 fit测试集用同一组 min 和 scale 参数 transform。一个实用的补救验证技巧是滚动回测每次只用窗口内的数据训练预测下一天然后窗口向后滑动一格。它比一次性切分测试集更贴近真实预报场景代码量也就一个循环from statsmodels.tsa.arima.model import ARIMA def rolling_backtest(series, train_len300, horizon7): errors [] for start in range(train_len, len(series) - horizon, horizon): train series.iloc[start - train_len:start] test series.iloc[start:start horizon] model ARIMA(train, orderbest_order).fit() pred model.forecast(horizon) errors.extend((test.values - pred.values).tolist()) return np.mean(np.abs(errors)) rolling_mae rolling_backtest(df_daily[temp]) print(f滚动回测 MAE: {rolling_mae:.2f} ℃)rolling_backtest里外层循环每次前进horizon天训练集始终是紧挨着测试窗口的前train_len条数据。这样每个测试窗口的模型都是用当时能拿到的数据训练出来的模拟了真实部署的预测条件。滚动 MAE 和一次性测试 MAE 的差距能直接暴露模型对数据段选择的敏感度——差距大说明模型不稳定需要回去调order参数或补特征。把这个验证结果写进 README 的数据分析段落项目的可信度会明显高于只贴一张预测图的版本。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

V2G调度中的停留时间与充电时间耦合模型及粒子群求解方法 2026/9/13 16:48:35

V2G调度中的停留时间与充电时间耦合模型及粒子群求解方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
GoFr 接入 Couchbase 文档数据库:环境变量配置、可插拔驱动与全链路可观测实战 2026/9/13 16:48:35

GoFr 接入 Couchbase 文档数据库:环境变量配置、可插拔驱动与全链路可观测实战

GoFr 接入 Couchbase 文档数据库:环境变量配置、可插拔驱动与全链路可观测实战 【免费下载链接】gofr An opinionated GoLang framework for accelerated microservice development. Built in support for databases and observability. 项目地址: https://gitcod…

阅读更多 →
NFL视频参与度分析:YouTube API与数据可视化实战 2026/9/13 16:48:35

NFL视频参与度分析:YouTube API与数据可视化实战

1. NFL参与度洞察分析项目概述YouTube平台上关于NFL(国家橄榄球联盟)参与度的内容分享已成为体育数据分析领域的重要趋势。这类内容通常基于YouTube的公开数据分析工具,结合第三方数据平台,挖掘球迷与赛事内容互动的深层模式。作为…

阅读更多 →
2026下半年数码与智能家居选购搭建指南:从协议到DIY全解析 2026/9/13 16:48:35

2026下半年数码与智能家居选购搭建指南:从协议到DIY全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
PyTorch实现语义分割:UNet与DeepLabV3核心差异与代码解析 2026/9/13 16:48:35

PyTorch实现语义分割:UNet与DeepLabV3核心差异与代码解析

简介:基于Pytorch的语义分割算法实现合集,集成DeepLabV3、UNet、FCN8s等主流网络,适用于计算机视觉学习者与算法工程人员快速搭建分割模型、开展训练与测试。资源已提供训练好的DeepLabV3(Xception)和FCN8s权重文件&am…

阅读更多 →
CPU、内存和硬盘如何协同?数据流转链路与性能瓶颈排查 2026/9/13 16:45:35

CPU、内存和硬盘如何协同?数据流转链路与性能瓶颈排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞