新闻详情

新闻详情

首页 / 资讯中心 / 详情

小波神经网络在交通流量预测中的MATLAB实现与优化

发布时间:2026/9/3 22:10:09来源:尧图网络
小波神经网络在交通流量预测中的MATLAB实现与优化
简介本资源是一套面向本硕博及科研教学人员的MATLAB小波神经网络实践教学包聚焦交通流量预测这一典型时序建模问题助力用户掌握小波神经网络算法原理与工程实现。压缩包共6个文件3个核心M函数、1段操作录像AVI、1个预存交通数据MAT文件、1个说明TXT总容量138KB结构精炼、即开即用。已有776人下载学习适用于人工智能方向课程设计、算法验证或毕业课题中的交通预测模块开发。用户可直接运行Runme_wavenn.m主程序在MATLAB 2021a及以上版本中一键启动仿真流程配套高清操作视频详细演示环境配置、数据加载、网络训练与结果可视化全过程并明确提示当前路径设置等关键运行细节显著降低入门门槛与调试成本。1. 项目概述当小波神经网络遇上交通流量预测交通拥堵大概是每个城市居民和规划者心头共同的“堵点”。无论是日常通勤还是大型活动精准预测未来一段时间内的交通流量对于优化信号灯配时、发布出行诱导信息、乃至规划道路建设都至关重要。传统的预测方法比如基于历史平均值的统计模型或者时间序列分析如ARIMA在面对交通流这种非线性、非平稳且受多种因素天气、事故、节假日干扰的数据时往往力不从心。这时候神经网络特别是擅长处理时序数据的循环神经网络RNN及其变体就展现出了强大的潜力。但标准的RNN存在梯度消失或爆炸的问题长时记忆能力有限。我最近在复现和优化一个结合了小波变换和Elman神经网络的交通流量预测模型并在MATLAB里完成了整套仿真。小波神经网络Wavelet Neural Network, WNN不是什么新概念但将小波分析的多分辨率特性与Elman网络的动态反馈结构结合起来用于捕捉交通流量序列中不同时间尺度的局部特征和全局趋势这个思路在实际调参和仿真中确实能带来比单一模型更稳定的预测效果。这个项目不仅涉及算法原理的理解更是一套完整的MATLAB工程实践从数据预处理、网络构建、训练到结果可视化。为了让大家能更直观地复现我还录制了配套的操作视频手把手演示关键步骤和可能遇到的坑。无论你是交通工程、智能交通系统ITS的研究者还是对神经网络应用感兴趣的MATLAB用户这套流程都能给你提供一个扎实的起点。2. 核心思路为什么是小波Elman在动手写代码之前我们必须想清楚为什么是这两个技术的组合它们各自解决了什么问题2.1 小波变换给时间序列做“CT扫描”交通流量数据可以看作一个时间序列信号。这个信号里混杂着不同的成分长期的趋势比如早晚高峰的周期性、中期的波动工作日与周末的差异、以及短期的噪声随机事件引起的瞬时变化。如果我们直接用原始数据去喂给神经网络网络需要耗费大量精力去学习和分离这些不同尺度的特征效果和效率都可能打折扣。小波变换的作用就在这里。它就像给时间序列做了一次“多分辨率CT扫描”。通过伸缩和平移一个小波基函数我常用的是db4或sym8我们可以把原始信号分解成不同频率的子带信号近似系数代表了信号的低频部分即长期趋势和主要轮廓。细节系数代表了信号的高频部分即短期波动和噪声。实操中的关键选择我选择进行3层小波分解。为什么是3层这需要一点经验。层数太少分解不够充分高频噪声可能还残留层数太多计算量增加且可能把有用的中频信息也当成噪声滤掉了。对于以小时或15分钟为粒度的交通流量数据3层分解通常能很好地分离出日周期趋势、小时级波动和随机噪声。在MATLAB中这对应wavedec函数。注意小波分解后各层系数的长度会变化向下采样。在将分解后的系数序列输入神经网络前必须进行重构使用waverec到与原始信号相同的时间点或者更常见的做法是将各层系数分别作为神经网络的额外输入特征。我采用的是后者因为它能更明确地告诉网络“这是长期趋势特征这是短期波动特征”。2.2 Elman神经网络具有“记忆”的预测器Elman神经网络是一种简单的递归神经网络RNN。它在普通前馈网络输入层、隐藏层、输出层的基础上增加了一个上下文层。这个上下文层会接收隐藏层上一时刻的输出并将其与当前时刻的输入一起作为隐藏层当前时刻的输入。这就赋予了网络“记忆”能力。对于交通流量预测当前时刻的流量显然与过去几分钟、几小时的流量高度相关。Elman网络的这种结构使其天生适合处理这种时间依赖关系。相比于更复杂的LSTM或GRUElman结构简单参数较少在数据量不是特别庞大的情况下更容易训练和收敛也避免了过拟合的风险。结合策略我们的核心架构是先将原始交通流量时序数据通过小波变换分解出近似系数A3和细节系数D1, D2, D3。然后将这些系数序列可能还包括原始序列作为一组并行的特征输入到Elman神经网络中。网络通过学习这些不同分辨率特征与未来流量之间的关系进行预测。这种结合方式相当于先让专家小波变换对数据进行预处理和特征提取再让一个具有记忆能力的预测器Elman网络进行学习分工明确效果叠加。3. 数据准备与预处理实战没有高质量的数据再好的模型也是空中楼阁。这里我以一份模拟的城市主干道小时级流量数据为例展示完整流程。3.1 数据加载与探索我通常将数据保存在traffic_flow.csv文件中包含两列timestamp时间戳格式为yyyy-mm-dd HH:MM:SS和flow流量辆/小时。% 读取数据 data readtable(traffic_flow.csv); flow data.flow; time datetime(data.timestamp); % 初步可视化感受数据规律 figure; plot(time, flow, b-, LineWidth, 1); xlabel(时间); ylabel(交通流量 (辆/小时)); title(原始交通流量时间序列); grid on;这一步至关重要。通过看图你能直观发现是否存在明显的周期性日周期、周周期、趋势性长期增长或下降以及异常点比如因为传感器故障导致的0值或极大值。3.2 数据清洗与异常值处理交通数据中异常值很常见。我的处理原则是对于明显的传感器错误如连续多小时的0值或远超合理范围的极大值采用前后时刻的线性插值或时段均值进行替换。对于单个尖峰可以结合小波变换后的细节系数来识别和过滤。% 简单的异常值处理示例将超过3倍标准差的值视为异常 mean_flow mean(flow); std_flow std(flow); threshold_high mean_flow 3 * std_flow; threshold_low max(0, mean_flow - 3 * std_flow); % 流量不为负 abnormal_idx find(flow threshold_high | flow threshold_low); if ~isempty(abnormal_idx) fprintf(发现 %d 个异常数据点将进行插值处理。\n, length(abnormal_idx)); for i 1:length(abnormal_idx) idx abnormal_idx(i); % 使用前后两个有效点的均值插值需确保前后索引有效 if idx 1 idx length(flow) flow(idx) (flow(idx-1) flow(idx1)) / 2; elseif idx 1 flow(idx) flow(idx1); elseif idx length(flow) flow(idx) flow(idx-1); end end end3.3 数据归一化与小波分解这是预处理的核心两步。归一化将数据缩放到[0, 1]或[-1, 1]区间加速神经网络收敛。我常用最小-最大归一化。[flow_normalized, ps] mapminmax(flow, 0, 1); % ps 结构体保存了归一化参数用于后续反归一化 flow_normalized flow_normalized; % 转置回列向量小波分解% 进行3层小波分解使用sym8小波基 wavelet_name sym8; level 3; [C, L] wavedec(flow_normalized, level, wavelet_name); % 提取各层近似和细节系数 A3 appcoef(C, L, wavelet_name, level); % 第3层近似系数最低频 D1 detcoef(C, L, 1); % 第1层细节系数最高频 D2 detcoef(C, L, 2); % 第2层细节系数 D3 detcoef(C, L, 3); % 第3层细节系数 % 为了保持时间点对齐我们需要将各层系数通过小波重构到原始长度 % 但更常见的做法是将它们作为长度不同的特征序列在构造样本时对齐处理。 % 这里演示重构到原始长度 A3_rec wrcoef(a, C, L, wavelet_name, level); D1_rec wrcoef(d, C, L, wavelet_name, 1); D2_rec wrcoef(d, C, L, wavelet_name, 2); D3_rec wrcoef(d, C, L, wavelet_name, 3); % 此时A3_rec, D1_rec, D2_rec, D3_rec 的长度都与 flow_normalized 相同。 % 将它们组合成特征矩阵 feature_matrix [flow_normalized, A3_rec, D1_rec, D2_rec, D3_rec];现在feature_matrix的每一行对应一个时间点但有了5个维度的特征原始归一化流量 4个小波分量。这大大丰富了输入信息。3.4 构建监督学习样本神经网络需要(输入, 输出)对来训练。对于时间序列预测我们采用滑动窗口法。 假设我们用过去T_past12个小时即12个时间点的数据来预测未来T_future1个小时的流量。我们的输入特征现在是5维的。T_past 12; % 历史步长 T_future 1; % 预测步长 X []; % 输入样本 Y []; % 输出标签 for i 1:(length(feature_matrix) - T_past - T_future 1) % 获取一个时间窗口的特征 input_window feature_matrix(i:iT_past-1, :); % 我们预测的目标是原始流量第1列而不是小波分量 target_value flow_normalized(iT_past : iT_pastT_future-1, 1); % 将输入窗口“拍平”变成一个行向量包含所有特征在过去T_past个时刻的值 % 也可以选择保持其三维结构样本数时间步长特征数这取决于网络输入层的设计 X [X; input_window(:)]; % 拍平后作为一行 Y [Y; target_value]; end % 划分训练集和测试集例如 80% 训练20% 测试 train_ratio 0.8; train_size floor(size(X, 1) * train_ratio); X_train X(1:train_size, :); Y_train Y(1:train_size, :); X_test X(train_size1:end, :); Y_test Y(train_size1:end, :);至此数据准备工作全部完成。X_train的每一行是一个样本包含了过去12个小时的5维特征共12*560个数据点Y_train是对应的未来1小时的流量值归一化后的。4. 小波-Elman神经网络的MATLAB实现MATLAB的深度学习工具箱提供了构建自定义网络的灵活方式。我们将使用layerGraph和相关层来构建一个Elman网络。4.1 网络结构定义我们的输入是一个60维的向量拍平后的12*5。我们需要先将其重塑回时间步长的形式然后输入到循环层。inputSize 60; % 拍平后的特征维度 numHiddenUnits 25; % Elman网络隐藏层神经元个数这是一个可调的超参数 outputSize 1; % 预测未来1小时的流量 layers [ sequenceInputLayer(inputSize) % 输入层接受序列数据 % 我们需要一个重塑层将拍平的60维向量变回[5, 12]的特征矩阵然后转置为[12, 5]以适应序列输入 % 但更直接的方式是在构造样本时不拍平而使用3D数组。这里为了清晰展示拍平后重塑的方式。 % 实际上更推荐在数据准备阶段就生成3D数组 X_3D (样本数, T_past, 特征数) % 假设我们按推荐方式生成了 X_train_3D则可以直接用 sequenceInputLayer(5) % 方案B推荐在数据准备阶段生成3D数组 % X_train_3D 形状应为 [numSamples, T_past, numFeatures] [N, 12, 5] % 那么网络第一层应为 % sequenceInputLayer(5) % 输入特征维度为5 fullyConnectedLayer(numHiddenUnits) % 一个全连接层进行初步特征变换也可以不用 elmanLayer(numHiddenUnits) % 关键Elman层。MATLAB R2024a之后有内置层早期版本需自定义 fullyConnectedLayer(outputSize) % 输出层 regressionLayer % 回归问题使用回归层 ]; % 如果使用自定义的Elman层旧版本MATLAB % 可以参考以下方式定义一个简单的Elman网络使用trainNetwork与sequenceInputLayer和fullyConnectedLayer配合recurrentLayer如果可用或使用narnet神经网络工具箱旧函数。 % 鉴于复杂性更实用的方法是使用layrecnet创建层递归网络或直接使用Deep Learning Toolbox的lstmLayer并设置OutputMode为last来模拟简单RNN。 % 这里给出一个使用patternnet或feedforwardnet配合手动实现时间窗的替代方案但会失去严格的时间递归。由于MATLAB官方对标准Elman网络的支持不如LSTM直接在实际操作视频中我演示了两种方案使用Deep Learning Toolbox的lstmLayer将其视为一个简单的RNN单元。设置OutputMode为last只取最后一个时间步的输出或sequence取所有时间步后面接全连接层。虽然名为LSTM但我们可以通过设置门控机制使其行为接近简单RNN。这是目前最稳定和推荐的方式。使用Neural Network Toolbox的narnet或layrecnet函数这些是专门为非线性自回归网络设计的旧函数其内部本质是Elman网络。它们接口较老但用于时间序列预测非常直接。为了代码的清晰和可复现性下面我采用第一种方案LSTM模拟RNN来构建网络这也是当前MATLAB深度学习中的主流做法。% 假设我们使用3D数据格式: [numSamples, sequenceLength, features] [N, 12, 5] inputSize 5; % 特征数量 numHiddenUnits 25; outputSize 1; layers [ sequenceInputLayer(inputSize, Name, input) % 输入序列每个时间步是5维向量 lstmLayer(numHiddenUnits, OutputMode, sequence, Name, lstm) % 输出整个序列 % 我们只关心最后一个时间步的输出来做预测 % 方法用一个全连接层处理每个时间步然后取最后一个或者用sequence folding/unfolding层。 % 更简单的方法在trainNetwork中使用sequenceOutputLayer和自定义训练循环或者 flattenLayer(Name, flatten) % 将 [N, 12, 25] 的输出展平为 [N, 12*25] fullyConnectedLayer(outputSize, Name, fc) % 全连接层输出预测值 regressionLayer(Name, output) ]; % 分析网络结构 analyzeNetwork(layers);4.2 网络训练与参数配置定义好网络结构后接下来是配置训练选项。这里有很多超参数需要调试。options trainingOptions(adam, ... % 优化器Adam对于RNN通常效果不错 MaxEpochs, 200, ... % 最大训练轮数 MiniBatchSize, 32, ... % 批大小根据内存调整 InitialLearnRate, 0.005, ... % 初始学习率关键参数 LearnRateSchedule, piecewise, ... LearnRateDropPeriod, 50, ... % 每50轮降低一次学习率 LearnRateDropFactor, 0.7, ... GradientThreshold, 1, ... % 梯度阈值防止梯度爆炸对RNN很重要 Shuffle, every-epoch, ... % 每轮打乱数据 Plots, training-progress, ... % 显示训练过程图 Verbose, true, ... ValidationData, {X_val, Y_val}, ... % 如果有验证集 ValidationFrequency, 30, ... ExecutionEnvironment, auto); % 自动选择CPU或GPU % 开始训练 [net, trainInfo] trainNetwork(X_train_3D, Y_train, layers, options);关键参数经验谈InitialLearnRate这是最重要的参数之一。对于交通流量这种规模的数据我从0.01开始尝试。如果训练损失震荡剧烈就调低到0.005或0.001如果下降太慢可以尝试调高。配合LearnRateSchedule使用后期降低学习率有助于收敛到更优解。GradientThresholdRNN/LSTM训练中的“稳定器”。设置为1或2可以有效防止因梯度爆炸导致的训练失败NaN损失。MiniBatchSize影响训练速度和稳定性。太小如8会导致更新噪声大收敛慢太大如256可能内存不足。32或64是常见的起点。MaxEpochs观察训练进度图当验证集损失在连续多个epoch不再明显下降时就可以考虑提前停止可以使用ValidationPatience选项避免过拟合。4.3 模型预测与反归一化训练完成后用测试集进行预测并记得将结果反归一化回原始流量尺度。% 使用训练好的网络进行预测 Y_pred_normalized predict(net, X_test_3D); % 输出是归一化的预测值 % 反归一化。注意我们预测的是流量归一化参数保存在之前的 ps 中。 % 但 ps 是针对原始流量序列 flow 的。我们的 Y_train 也是用同样的参数归一化的。 Y_pred mapminmax(reverse, Y_pred_normalized, ps); % mapminmax处理行向量需要转置 Y_test_original mapminmax(reverse, Y_test, ps); % 同样处理真实值 % 将结果转置回列向量方便比较 Y_pred Y_pred; Y_test_original Y_test_original;5. 结果可视化与性能评估模型好不好看图看指标。5.1 预测结果对比图将测试集上的预测值与真实值绘制在同一张图上是最直观的评估方式。figure(Position, [100, 100, 1200, 500]); plot(Y_test_original, b-, LineWidth, 2, DisplayName, 真实流量); hold on; plot(Y_pred, r--, LineWidth, 1.5, DisplayName, 预测流量); xlabel(测试样本时间点); ylabel(交通流量 (辆/小时)); title(小波-Elman神经网络交通流量预测结果对比); legend(Location, best); grid on; hold off;5.2 性能指标计算常用的回归预测指标有均方根误差衡量预测值与真实值之间的平均偏差单位与流量相同非常直观。平均绝对误差对异常值不如RMSE敏感。平均绝对百分比误差反映相对误差适合不同尺度数据的比较。决定系数表示模型对数据波动的解释能力越接近1越好。% 计算性能指标 rmse sqrt(mean((Y_test_original - Y_pred).^2)); mae mean(abs(Y_test_original - Y_pred)); mape mean(abs((Y_test_original - Y_pred) ./ Y_test_original)) * 100; % 百分比 % R^2 计算 SS_res sum((Y_test_original - Y_pred).^2); SS_tot sum((Y_test_original - mean(Y_test_original)).^2); r2 1 - (SS_res / SS_tot); fprintf(模型性能评估:\n); fprintf(均方根误差 : %.2f 辆/小时\n, rmse); fprintf(平均绝对误差 : %.2f 辆/小时\n, mae); fprintf(平均绝对百分比误差 : %.2f%%\n, mape); fprintf(决定系数 R^2 : %.4f\n, r2);在我的仿真案例中一个经过良好调参的模型RMSE通常能控制在同期流量平均值的5%-10%以内R²能达到0.85以上这说明模型捕捉到了大部分流量变化规律。5.3 小波分量贡献度分析进阶为了理解小波变换是否真的起了作用我们可以做一个对比实验训练一个仅使用原始流量数据不进行小波分解作为输入的相同结构的LSTM/Elman网络。比较两个模型在测试集上的性能。通常结合了小波特征的模型在RMSE和R²上会有2%-5%的提升尤其是在预测流量快速变化的时段如高峰期的开始和结束因为细节系数D1, D2帮助网络更好地捕捉了这些短期波动。6. 实操中的常见陷阱与解决方案在实际操作和录制视频的过程中我遇到了不少坑。这里总结一下希望能帮你节省时间。6.1 数据问题导致的训练失败问题现象训练损失很快变为NaN或者震荡不降。排查与解决检查数据归一化确保没有漏掉归一化步骤。未归一化的数据可能导致梯度计算出现极大值。使用mapminmax或zscore函数。检查异常值极端异常值即使在归一化后也会破坏训练。回顾3.2节务必进行清洗。调整梯度阈值在trainingOptions中增加GradientThreshold从1开始尝试。降低学习率这是最常用的手段。将InitialLearnRate从0.01降至0.001甚至0.0005。6.2 网络不收敛或预测值是一条直线问题现象预测结果几乎是常数值或者是一条缓慢变化的曲线完全跟不上真实数据的波动。排查与解决网络容量不足隐藏层神经元数量numHiddenUnits可能太少。对于12个历史步长、5个特征的输入25-50个单元是合理的起点。可以尝试增加到80或100。学习率太低学习率过低会导致网络更新缓慢看似“收敛”到某个平庸的解。尝试适当提高学习率。激活函数问题确保循环层如LSTM后面有适当的激活函数如tanh或relu。MATLAB的lstmLayer默认使用tanh和sigmoid作为门控激活函数通常没问题。如果在全连接层后使用了不合适的激活函数如对回归问题最后一层用了sigmoid会导致输出被限制在固定范围。数据本身周期性不强如果交通流量数据非常随机缺乏规律任何模型都难以预测。这时需要重新审视问题或引入更多外部特征如天气、节假日标志。6.3 过拟合问题问题现象训练集损失很低但测试集损失很高预测在测试集上表现很差。排查与解决获取更多数据这是根本方法。时间序列数据通常需要至少几个月甚至一年的数据才能涵盖各种模式季节、节假日。使用正则化在trainingOptions中设置L2Regularization参数例如0.001惩罚大的权重。使用Dropout层在LSTM层后添加dropoutLayer随机丢弃一部分神经元防止网络对训练数据过度依赖。比例通常设为0.2到0.5。早停使用验证集并设置ValidationPatience参数。当验证集损失在连续多个epoch不下降时自动停止训练。6.4 MATLAB版本与函数兼容性问题elmanLayer找不到这是最常见的困惑。在较新的Deep Learning Toolbox中没有名为elmanLayer的内置层。你需要方案一使用lstmLayer并接受其作为RNN的现代替代。对于许多预测任务其性能足够好甚至更优。方案二使用旧版Neural Network Toolbox的narnet或layrecnet函数。注意这些函数的数据格式要求通常是行向量的细胞数组。方案三自定义网络层。这需要较深的MATLAB和深度学习知识不推荐初学者。内存不足处理长序列或大批量数据时可能出现内存错误。减小MiniBatchSize。使用ExecutionEnvironment, cpu强制使用CPU如果GPU内存小。检查数据格式确保没有不必要的拷贝。7. 项目扩展与优化方向完成基础预测后这个项目还有很大的深化空间。7.1 引入多变量与外部特征真实的交通流量受多种因素影响。我们可以轻松地将模型扩展为多变量输入时间特征一天中的小时0-23、一周中的第几天1-7、是否为节假日0/1。这些可以作为额外的特征列与小波分解后的特征一起输入网络。天气特征降雨量、能见度、温度。这些数据需要从其他来源获取并做对齐。上下游流量相邻检测站的流量数据可以体现交通流的传播。在数据准备阶段只需要将这些特征与原始流量数据一起归一化然后共同进行小波变换注意小波变换通常对单变量序列进行对于多变量可以对每个变量分别变换后合并特征或者选择多变量小波变换方法。7.2 模型结构的优化堆叠循环层使用多层LSTM/GRU来捕捉更复杂的时间依赖关系。例如lstmLayer(50, OutputMode, sequence)后面再接一个lstmLayer(25, OutputMode, last)。注意力机制在循环层后加入注意力层让网络学会关注历史序列中与当前预测最相关的部分这对于长序列预测尤其有效。Seq2Seq架构如果要做多步预测例如预测未来3小时或6小时可以使用编码器-解码器结构。7.3 部署与实时预测仿真成功只是第一步。考虑实时预测时需要模型固化将训练好的网络和预处理参数归一化的ps、小波基名称、历史窗口长度T_past保存下来save命令。设计预测流水线编写一个预测函数该函数接收最新的T_past个时间点的原始流量数据自动执行异常值处理 - 归一化 - 小波分解 - 特征构建 - 模型预测 - 反归一化 的全流程。定期更新模型交通模式会随时间变化新路开通、政策调整。需要定期如每季度用新数据重新训练或微调模型。这个基于小波神经网络的交通流量预测项目从理论到MATLAB实现涉及了信号处理、机器学习和软件工程的多方面知识。它最吸引我的地方在于将一种经典的信号分析工具小波变换与现代的深度学习模型相结合用可解释的特征工程来增强黑盒模型的能力。在操作视频里我一步步演示了如何绕过那些令人头疼的报错信息如何调整参数观察模型表现的变化。希望这份详细的总结和代码片段能帮你顺利跑通自己的第一个交通预测模型并在此基础上探索更广阔的应用。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

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

较早相关资讯

最新相关资讯

用知漫剧将小说文本自动转为漫剧:小说作者副业实践指南 2026/9/3 22:49:31

用知漫剧将小说文本自动转为漫剧:小说作者副业实践指南

引言 2025年短剧赛道持续爆发,AI漫剧成了各平台新的流量入口。对小说作者而言,手里的故事本身就是最核心的素材——缺的只是一条从文字到视频的高效链路。知漫剧(zz.jiaxunai.cn)正是为此而生:价格实惠,小…

阅读更多 →
fuels-ts钱包体系深度解析:助记词、HD推导路径与加密存储,安全管好你的Fuel资产 2026/9/3 22:49:31

fuels-ts钱包体系深度解析:助记词、HD推导路径与加密存储,安全管好你的Fuel资产

fuels-ts钱包体系深度解析:助记词、HD推导路径与加密存储,安全管好你的Fuel资产 【免费下载链接】fuels-ts Fuel Network Typescript SDK 项目地址: https://gitcode.com/GitHub_Trending/fu/fuels-ts fuels-ts 是 Fuel Network 官方的 TypeScrip…

阅读更多 →
ngrok http:从localhost到外部访问要注意什么 2026/9/3 22:49:31

ngrok http:从localhost到外部访问要注意什么

【引子:一个很普通的开发现场】开发者在电脑上启动了一个Web项目,浏览器访问localhost,一切正常。问题出现在下一步:同事在另一台电脑上,需要测试这个页面;接口回调也需要一个外部可访问的地址。这种现象并…

阅读更多 →
Linux服务器安全自查指南:揪出“坏兔”后门与异常进程 2026/9/3 22:49:31

Linux服务器安全自查指南:揪出“坏兔”后门与异常进程

看到《坏兔之歌》这个标题,第一反应可能是一个循环洗脑的网络神曲,但如果把“坏兔”这两个字放到网络安全语境里,整句话就变成了一个非常值得重视的提醒:快检查你的服务器、你的 Linux 主机、你的个人电脑里,是不是已经…

阅读更多 →
高考作文不押题:五步解析系统破解审题立意与结构难题 2026/9/3 22:49:31

高考作文不押题:五步解析系统破解审题立意与结构难题

2026年高考还没开考,官方作文题自然也没有公布。现在网上凡是挂着“2026全国二卷真题”字样的内容,要么是模拟题,要么是预测题,这一点先看清楚。所以这篇文章不玩“押题”,而是给你一套更稳的东西:一套可以…

阅读更多 →
无刷电机与Mesh 2.0加持,科思顿Smart6电动窗帘体验如何? 2026/9/3 22:46:30

无刷电机与Mesh 2.0加持,科思顿Smart6电动窗帘体验如何?

这次我们来看一套面向全屋智能场景的电动窗帘系统:科思顿 Smart6 电动窗帘轨道。它的核心不是“能遥控开合”这么简单,而是把无刷电机和 Mesh 2.0 组网两个点放在了一起。无刷电机决定了运行噪声、寿命和响应手感,Mesh 2.0 决定了多台窗帘之间…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

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

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