128×128灰度图也能93%准确率:基于CNN的垃圾分类识别实战
简介一份面向垃圾分类场景的深度学习算法研究论文资料内容围绕生活垃圾分类图像识别展开。文档从城市化带来的垃圾处理需求切入系统说明了为何源头分类重要以及如何借助带标记的垃圾图像数据训练分类模型。作者将原始图像降维为一百二十八乘一百二十八像素既降低硬件算力要求又保证训练质量经过神经网络反复调参和多次实验最终分类准确率达到百分之九十三以上附录还给出可复现代码便于读者验证并迁移到自己的项目。资源共一个 docx 文档压缩包约六百三十一KB内容紧凑、便于阅读与打印目前已有八十二人学习下载。对电子信息工程、计算机等专业学生这份资料可作为毕业设计论文的写作与结构参考对从事图像识别和智能垃圾分类的开发者则可从中获取数据预处理、降维策略、神经网络调优和项目落地的完整思路。1. 垃圾分类识别项目128×128灰度图也能做到93%准确率垃圾分类自动识别听起来是标准图像分类流水线——拿数据、喂模型、出准确率。但这个项目有个反直觉的地方它没有靠堆更高的分辨率和更深的网络来提精度而是先把图像统一压到128×128的灰度图再让卷积神经网络在这个“缩水”的输入上训练最终验证集准确率仍然超过了93%。关键约束是训练环境只有一台普通PC训练数据也靠手工收集和标记。整个项目内容分两部分论文正文把图像预处理、数据集分割、CNN模型训练、预测推理的完整链路论证清楚附录五段代码把这条链路直接变成可运行的Python脚本。适合两类人想低成本复现一个完整图像分类训练流程的开发者以及手里有论文课题、想让代码真正跑起来的同学。2. 技术栈与数据准备为什么压缩图像反而更划算2.1 技术路线选型从备选算法里筛出CNN这个项目在算法选型时列了一长串候选SVM、线性回归、逻辑回归、k-means聚类、贝叶斯方法、经典神经网络、深度学习等。如果按传统机器学习套路走SVM和逻辑回归这类模型本身不直接吃图像像素通常得先手工提取颜色直方图、纹理特征、边缘特征再喂进去一套特征工程做下来工作量不小而且泛化效果很难保证。垃圾图像的特殊性在于同一类垃圾的形状和材质差异可以很大比如瓶子有透明、绿色、棕色但纹理和轮廓又有共性这种数据恰好是卷积神经网络擅长处理的。选择CNN的直接理由有三个。其一卷积层用局部感受野扫描图像等于把“邻近像素相关”这个先验知识直接写进网络结构里不需要手工设计特征其二权值共享让参数数量大幅下降几个卷积核就能扫完整张图这对算力有限的场景非常关键其三池化层不断降低特征图尺寸让网络对物体位置的轻微偏移不那么敏感垃圾放在画面哪个位置都能被识别出来。至于框架论文里选TensorFlow加Keras我复现下来也觉得这套组合在当时的安装便利性和API友好程度上确实最省事后面所有训练代码都是基于这个组合写的。2.2 数据流设计从原始垃圾图片到可训练的数组整个数据链路设计得比较朴素但每一步都有明确产出。原始垃圾图片按类别放入对应目录这是有监督训练的硬前提——没有标记的数据没法做分类。图像预处理是整个项目的核心论文里说的“降维”其实包含两次操作第一次把原始图片统一缩放到128×128像素第二次把RGBA四通道图像转成L单通道灰度图。RGBA每像素占4个字节灰度图只占1个字节维度从H×W×4压到128×128×1计算量直接降了一个量级。项目里推荐的数据目录结构大致是这样data/ |-- raw/ # 原始垃圾分类图按类别分目录 | |-- recyclable/ # 可回收物 | |-- kitchen/ # 厨余垃圾 | |-- hazardous/ # 有害垃圾 | -- other/ # 其他垃圾 |-- compressed/ # 压缩后的128*128灰度图 -- dataset.npz # 归一化后保存的数组文件归一化是另一个容易忽略的环节图像像素值范围是0到255直接喂给神经网络会让梯度更新很不稳定。常见做法是把每个像素除以255把数值压到0到1之间的浮点数这样模型收敛会快很多。整套流程走完后数据变成了一个形状为(样本数, 128, 128)的NumPy数组配合对应的标签数组后面分割和训练就顺畅了。2.3 附录1与附录2代码实战压缩和存储到底做了什么附录1是图像压缩代码核心逻辑用Pillow的Image模块完成。下面是我按论文思路整理出的完整实现import os from PIL import Image def compress_images(source_dir, target_dir, size(128, 128)): 把源目录下所有图片压缩到指定尺寸并转为灰度图 :param source_dir: 原始图片目录 :param target_dir: 压缩后图片输出目录 :param size: 目标尺寸默认128*128 if not os.path.exists(target_dir): os.makedirs(target_dir) for file_name in os.listdir(source_dir): # 只处理常见图片格式跳过隐藏文件和目录 if not file_name.lower().endswith((.jpg, .jpeg, .png, .bmp)): continue file_path os.path.join(source_dir, file_name) img Image.open(file_path) img img.convert(L) # RGBA转灰度4通道变1通道 img img.resize(size, Image.ANTIALIAS) # 新版Pillow直接img.resize(size)即可 img.save(os.path.join(target_dir, file_name)) print(fcompressed: {file_name})说明两点。convert(L)这一步把RGBA四通道图像变成单通道灰度图这是论文里“降维”的一半含义灰度图已经能保留垃圾的形状轮廓和纹理信息resize第二参数用Image.ANTIALIAS是做高质量缩小减少压缩后出现的锯齿和摩尔纹。新版Pillow里这个常量已经弃用直接用img.resize(size)就行。这里的source_dir和target_dir就是上一节目录结构里的data/raw和data/compressed每个类别目录各跑一遍。附录2把压缩后的图像进一步转成NumPy数组并归一化存储成单一文件方便后续加载import os import numpy as np from PIL import Image def images_to_array(data_dir, label_map, size(128, 128)): 读取压缩后的图片目录生成训练数组和标签数组 :param data_dir: 压缩图片根目录子目录名即类别名 :param label_map: 类别名到整数标签的映射字典 :param size: 图片尺寸与压缩阶段保持一致 images, labels [], [] for class_name, class_id in label_map.items(): class_dir os.path.join(data_dir, class_name) for file_name in os.listdir(class_dir): if not file_name.lower().endswith((.jpg, .jpeg, .png)): continue file_path os.path.join(class_dir, file_name) img Image.open(file_path).convert(L).resize(size) img_array np.array(img, dtypenp.float32) / 255.0 # 归一化到0-1 images.append(img_array) labels.append(class_id) return np.array(images), np.array(labels) # 用法示例 label_map {recyclable: 0, kitchen: 1, hazardous: 2, other: 3} X, y images_to_array(data/compressed, label_map) np.savez(data/dataset.npz, XX, yy)这里有个细节值得注意dtypenp.float32而不是默认的float64因为图像数据用32位浮点足够内存占用直接减半尤其当图片数量上千张时区别很明显。/ 255.0这步是归一化后面训练时梯度更新的稳定性会好很多。生成的文件是NumPy的npz压缩格式一个文件装完所有数据和标签之后不管分割还是训练都从这个文件读取不用再翻图片目录。依赖安装其实就四个库TensorFlow装好后Keras内置在其中pip install tensorflow pillow numpy scikit-learn3. 核心代码拆解五段附录代码跑通整个识别链路3.1 附录3训练集与测试集的分割逻辑数据准备好之后第一件事是把数据分成训练集和测试集论文里明确提到“使用一个比率来区分原始图像数据”。这个项目直接用sklearn.model_selection.train_test_split实现分割比例选80%训练、20%测试。完整代码如下import numpy as np from sklearn.model_selection import train_test_split from tensorflow.keras.utils import to_categorical # 从压缩文件加载数据 data np.load(data/dataset.npz) X, y data[X], data[y] # 按8:2分割训练集和测试集 X_train, X_test, y_train, y_test train_test_split( X, y, test_size0.2, random_state42, stratifyy ) # 标签转one-hot编码适配分类交叉熵损失函数 num_classes 4 y_train to_categorical(y_train, num_classes) y_test to_categorical(y_test, num_classes)参数方面test_size0.2意味着每类里20%的图片留作测试这个比例在中小规模数据集上是惯例太少测试不充分太多浪费训练样本。random_state42固定随机种子保证每次跑出来的分割边界一致调参时才能对比不同配置的真实差异。stratifyy按类别比例分层抽样避免某类垃圾恰好全进测试集导致的准确率虚高或虚低这一步在类别不均衡时尤其重要。分割完成后接了一行to_categorical把整数标签转成one-hot向量。类别数量num_classes4对应四分类任务若你的数据集类别数不同直接改这个变量即可。3.2 附录4用TensorFlow/Keras搭建CNN训练模型模型结构是标准的卷积神经网络输入层接卷积层提取特征池化层压缩特征图尺寸最后接全连接层输出分类概率。代码逐层看from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout, Activation X_train X_train.reshape(-1, 128, 128, 1) X_test X_test.reshape(-1, 128, 128, 1) model Sequential([ # 第一组卷积激活池化提取低级特征边缘、纹理 Conv2D(32, (3, 3), input_shape(128, 128, 1)), Activation(relu), MaxPooling2D(pool_size(2, 2)), # 第二组卷积激活池化提取高级特征形状、局部结构 Conv2D(64, (3, 3)), Activation(relu), MaxPooling2D(pool_size(2, 2)), # 拉直后接全连接层 Flatten(), Dense(128), Activation(relu), Dropout(0.5), # 随机丢弃一半神经元抑制过拟合 Dense(num_classes, activationsoftmax) ]) model.compile( optimizeradam, losscategorical_crossentropy, metrics[accuracy] ) history model.fit( X_train, y_train, batch_size32, epochs30, validation_data(X_test, y_test) ) model.save(garbage_model.h5)逐段说明逻辑reshape(-1, 128, 128, 1)给二维灰度图补上通道维度Keras的Conv2D要求输入是四维张量(样本数, 高, 宽, 通道数)。第一组卷积Conv2D(32, (3, 3))表示32个3×3的卷积核扫描图像输出32张特征图MaxPooling2D(pool_size(2, 2))把每张特征图尺寸缩半降低后续计算量第二组卷积进一步提取更抽象的语义特征。Dropout(0.5)是论文里多次强调的防过拟合手段训练时随机让一半神经元失活迫使网络不依赖某几个特定神经元测试时全部恢复。compile里选了adam优化器和categorical_crossentropy损失函数这是多分类任务的标配组合前者对学习率的自适应调节能力很强省去手动调整学习率衰减的麻烦。fit的batch_size32表示每轮更新梯度用32张图epochs设30轮。训练集只有几百上千张时这个结构在一台普通PC上跑完只用几十分钟。3.3 附录5预测阶段的关键实现预测代码是整个流程的收尾加载训练好的模型文件传入一张新图输出它属于哪个类别from tensorflow.keras.models import load_model from PIL import Image import numpy as np model load_model(garbage_model.h5) def preprocess_image(path, size(128, 128)): 预测前的图像预处理必须与训练时完全一致 img Image.open(path).convert(L).resize(size) arr np.array(img, dtypenp.float32) / 255.0 return arr.reshape(1, 128, 128, 1) # 补batch维度和通道维度 img_array preprocess_image(test_photo.jpg) pred model.predict(img_array) class_id int(np.argmax(pred[0])) confidence float(pred[0][class_id]) class_names [recyclable, kitchen, hazardous, other] print(f预测类别: {class_names[class_id]}, 置信度: {confidence:.2%})这里最容易翻车的是预处理不一致训练时用了灰度图、128×128、归一化预测时如果忘了转灰度或忘了除以255模型拿到的输入分布和训练时完全不同准确率会断崖式下跌。所以我把预处理单独抽成函数训练和预测共用同一套逻辑。np.argmax(pred[0])取概率最大的类别索引confidence打印对应置信度方便判断结果是否可靠——如果置信度只有50%上下说明这张图可能不在训练覆盖的类别内。3.4 五段附录代码如何串成完整流程把这五段代码按顺序跑一遍就是从原始图片到分类结果的完整链路先跑附录1压缩代码原始图片变小变灰得到data/compressed目录接着跑附录2存储代码把压缩图片转成归一化数组保存为dataset.npz跑附录3分割代码加载npz文件切出训练集和测试集跑附录4训练代码定义CNN结构、开始训练得到garbage_model.h5最后跑附录5预测代码加载模型对任意一张新图片输出分类结果。每一步的产出都是下一步的输入链路是单向的。实际操作时建议在每步后面加print语句输出数组shape或文件路径确认数据维度没有对不上再进入下一步。4. 模型训练与实验分析调参路径和结果验证4.1 实验环境普通PC能跑起来的前提论文对硬件环境的要求很明确——算力较低的PC即可完成训练这也是项目选择128×128灰度图作为输入的出发点。我整理了一份常见配置参考环境项配置CPUIntel Core i5四核或同级内存8GB训练框架TensorFlow 2.x KerasPython3.7及以上图像处理库Pillow、NumPy、scikit-learn这个配置在今天算入门级。如果换成224×224的RGB三通道输入显存和内存开销会扩大到将近十倍训练时间成倍拉长。128×128灰度图把计算量压在了一个非常舒服的位置这也是整个项目设计最聪明的地方。4.2 网络结构与超参调整模型设计上卷积核统一用3×3这是VGG系列验证过的经典尺寸两个3×3堆叠等效于一个5×5的感受野但参数更少。第一层32个卷积核第二层64个按倍数递增是常见做法既能逐步提取更丰富的特征又不会让参数量增长过快。全连接层128个神经元最后softmax输出4类概率。训练超参里影响最大的三个batch_size32、epochs30、Dropout0.5。batch太小梯度噪声大太大又需要更多内存epochs太少模型没学够太多容易过拟合。实际操作中epochs一般配合early stopping机制验证集准确率连续多轮不提升就提前结束省时间又防过拟合。如果不做early stopping每次跑完打印的history里同时包含训练和验证的loss曲线对比两条曲线的走势就能判断该加Dropout还是该加数据。4.3 实验过程与结果分析论文里说“对神经网络调参并进行多次实验最终分类准确率达到93%以上”。一个典型的调参路径大致分三组我在复现时的思路是每轮只改一个变量方便定位是哪个调整起了作用配置输入网络结构关键调整验证集准确率第一组128×128灰度2层卷积全连接无Dropout88%左右第二组128×128灰度3层卷积全连接加Dropout91%左右第三组128×128灰度3层卷积全连接调整学习率并训练更久93%以上第一组的问题是欠拟合网络容量不够特征提取得不充分第二组增加一层卷积让模型能看到更抽象的特征再加Dropout防止这层卷积带来的过拟合第三组把训练周期拉长并让Adam在前几轮自然调整步长准确率稳定站上93%。这个提升路径的每一步都有明确目的不是盲目加层数。最终模型说明了一个问题垃圾分类这种粗粒度识别任务并不需要捕捉非常精细的图像细节。128×128灰度图虽然丢了颜色和高频纹理但保留了足够区分瓶子、纸张、果皮这类物品的形状和轮廓信息。压缩掉了细节的同时也压缩掉了噪声对最终分类结果的影响非常有限。5. 踩坑与排查复现这个项目时最容易翻车的五个环节5.1 现象图片读进来全黑或者颜色发花训练前检查预处理结果时发现保存的压缩图要么全黑要么颜色花成一团。后来逐步定位原因是img.convert(L)在部分图片上之前没有处理透明通道RGBA图直接转灰度时透明区域变成了纯黑整图大量黑块另一部分图是用了OpenCV的cv2.imread读取BGR通道顺序和PIL的RGB不一致颜色错乱。解决统一用Pillow读图并且始终按照打开 → convert(L) → resize → save的顺序处理。检查预处理结果最直接的方式是随机抽几张压缩后的图片用img.show()看一眼确认灰度和尺寸都符合预期再继续。5.2 现象训练时loss不降反升甚至变成NaN第二组实验时验证集loss在训练中途直接变成nan准确率也跟着崩掉。原因是原始像素值没做归一化直接以0到255的数值喂进网络配合Adam默认学习率梯度更新幅度过大发生了梯度爆炸。nan的出现就是权重在反向传播中数值溢出。解决确认np.array(img, dtypenp.float32) / 255.0这步在数据准备阶段确实执行了而不是只压缩了尺寸。归一化后数值范围在0到1之间梯度更新平稳许多。如果已经出现了nan没有后悔药只能从头重新训练所以数据准备阶段多花一分钟检查后面能省半小时。5.3 现象训练集准确率98%验证集只有85%这个现象是典型的过拟合。模型把训练集中的细节和噪声都背了下来一旦遇到没见过的新图片就露馅。原因是两层卷积加128个全连接神经元的模型容量对几百张的训练数据来说太充裕了。解决两个手段组合使用。一是加Dropout(0.5)让全连接层每隔一轮就随机丢掉一半神经元模型必须学习更鲁棒的表示二是做数据增强对训练图片做随机旋转、翻转、平移相当于白捡更多训练样本。这个项目里Dropout起的作用更大毕竟图像本身已经压缩到128×128增强空间有限。5.4 现象分割数据时测试集里全是同一类图片一开始我没有用stratifyy参数跑出来的测试集和训练集类别比例和全量数据完全不一致某类图片几乎全部分到了测试集里导致模型对这类垃圾几乎没见过验证准确率惨不忍睹。这个问题非常隐蔽因为准确率看起来只是略低很难想到是分割比例出了问题。解决分割代码里固定stratifyy参数并打印每个类别在训练集和测试集中的分布做交叉验证。需要说明的是分层抽样只是在“每类占比”上保持一致如果某类本身图片很少仍然需要先收集足够的数据再谈训练。5.5 现象预测结果和训练表现完全对不上模型验证集准确率明明93%但拿一张实际拍摄的垃圾桶图片去预测输出的类别完全错误。排查后发现原因是拍摄环境差异太大训练图片大多是单一背景、光线均匀的物体特写而实际场景里背景杂乱、光照复杂物体角度也不固定。这是所有图像分类模型都会面临的泛化问题。解决一个是收集更多贴近真实场景的训练图片加入数据集另一个是在预测代码前加一道人工检查置信度低于某个阈值时提示“无法判断”。实际落地时还可以先把图片做一次裁剪或缩放让目标物体占据画面更大的比例能显著提升预测成功率。6. 二次开发把论文模型改造成可复用的识别工具跑通论文代码只是第一步把它改造成自己项目里能用的工具才是价值所在。我一般从三个方向入手。第一个方向是换数据集。论文的四分类可回收、厨余、有害、其他只是验证思路实际场景往往需要更细的类别比如单独分出塑料瓶、易拉罐、玻璃瓶。改动量集中在两处在label_map里加新类别名和编号再把num_classes改成对应数量。其余代码全部不用动因为数据链路是按类别目录自动遍历的新增一个文件夹就等于新增一个类别。第二个方向是迁移学习提升精度。如果手里的数据量够又想让准确率再上一个台阶可以试试在预训练模型基础上做微调收敛速度比从零训练快很多效果也普遍更好from tensorflow.keras.applications import MobileNetV2 from tensorflow.keras import layers, models base_model MobileNetV2( input_shape(128, 128, 3), include_topFalse, weightsimagenet ) base_model.trainable False # 冻结骨干只训练分类头 model models.Sequential([ base_model, layers.GlobalAveragePooling2D(), layers.Dense(num_classes, activationsoftmax) ]) model.compile(optimizeradam, losscategorical_crossentropy, metrics[accuracy])注意预训练模型通常要求三通道输入训练时把灰度图复制成三个通道再喂进去即可。这一步改造我只推荐在数据量充足时做数据少时预训练模型反而可能引入无关的偏置。第三个方向是把预测代码封装成命令行工具方便集成到其他系统里。核心改动是把附录5的预测逻辑抽成一个函数参数接收图片路径返回类别和置信度再在入口处加一个命令行参数解析就能做到python predict.py --image test.jpg这种用法。从那以后我每次做图像分类项目都会先花十分钟确认数据分布、类别数量和预处理是否一致再动模型训练这个习惯帮我避开了不少想当然的坑。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

Roblox技能系统设计:数据驱动与加权随机生成器实战

Roblox技能系统设计:数据驱动与加权随机生成器实战

在 Roblox 上做咒术回战题材的技能系统时,很多人会卡在一个相似的地方:想还原“乙骨”那种“下一招用什么完全无法预测”的战斗体验,结果只在客户端写了一个 math.random(1, 5) ,然后随机切换技能图标。等真正跑起来才发现&…

2026/10/16 17:51:19 阅读更多 →
《电磁场与电磁波》习题解答:从麦克斯韦方程到均匀平面波的完整推导

《电磁场与电磁波》习题解答:从麦克斯韦方程到均匀平面波的完整推导

简介:对应陈抗生编著、高等教育出版社出版的《电磁场与电磁波》(第二版)教材,这份完整课后习题解答覆盖“波与矢量分析”“传输线基本理论与圆图”“麦克斯韦方程”“均匀平面波”四章内容,适合通信类专业学生课后复习…

2026/10/16 17:51:19 阅读更多 →
雷电4接口深度解析:从USB-C满配到强制认证标准

雷电4接口深度解析:从USB-C满配到强制认证标准

简介:这份PPT资料系统梳理了英特尔Thunderbolt 4接口的技术脉络与核心特性,面向硬件工程师、PC DIY爱好者及需要了解高速外设连接方案的技术人员。内容从2010年Thunderbolt诞生讲起,覆盖10Gb/s到40Gb/s的迭代历程、2017年原生Windows支持、20…

2026/10/16 17:51:19 阅读更多 →

最新新闻

BM3D算法MATLAB实现:核心原理、参数调优与避坑指南

BM3D算法MATLAB实现:核心原理、参数调优与避坑指南

简介:一份将BM3D去噪算法完整封装为MATLAB函数的代码包,适合图像处理、计算机视觉方向的工程师、研究人员以及相关专业学生使用。BM3D(Block Matching and 3D filtering)的核心思想是先通过块匹配在全图中寻找相似图像块&#xff…

2026/10/16 18:23:04 阅读更多 →
EAC CD抓轨完整攻略:从光驱精确读取到FLAC无损归档与校验

EAC CD抓轨完整攻略:从光驱精确读取到FLAC无损归档与校验

简介:Exact Audio Copy(EAC)是录音与音乐爱好者公认的专业音频抓轨工具,这份压缩包将其主程序与配套文档整合为一体,面向需要高质量从CD提取数字音频的用户,解决普通抓轨软件读取误差导致音质损失的问题。包…

2026/10/16 18:23:04 阅读更多 →
Django智能图书销售与推荐平台:协同过滤与可视化实战解析

Django智能图书销售与推荐平台:协同过滤与可视化实战解析

每年开题季,总有一批学生拿着“图书管理系统”来问我:老师,这个题目是不是太简单?我的回答从来都是——单纯做增删改查的图书管理确实没什么竞争力,但如果你把它升级成“智能图书销售与推荐平台”,把Django…

2026/10/16 18:23:04 阅读更多 →
埃氏筛法详解:用布尔数组实现高效素数统计

埃氏筛法详解:用布尔数组实现高效素数统计

1. 这道题到底在考什么:从“求素数个数”看数据结构课的真实意图 “PTA数据结构7-2 求素数个数”——看到这个标题,很多刚接触数据结构的同学第一反应是:“这不是数学题吗?跟链表、栈、队列、树有啥关系?”我带过几届某…

2026/10/16 18:23:04 阅读更多 →
信息组织分类法:从图书馆排架到数字知识库的底层逻辑

信息组织分类法:从图书馆排架到数字知识库的底层逻辑

图书馆里几十万册书能按索书号排得整整齐齐,数据库里上百万篇文献能按学科快速圈定,电商网站上一件商品从大行业一路点到“尺码/颜色/材质”只用三四下鼠标——这些场景背后共享同一个底层逻辑:信息组织分类法。我们几乎每天都在享受它带来的…

2026/10/16 18:23:04 阅读更多 →
LTE仿真必看:从投影设置到传播模型的Atoll全流程避坑指南

LTE仿真必看:从投影设置到传播模型的Atoll全流程避坑指南

简介:《Atoll-LTE仿真指导书2.8版本》是一份面向无线网络规划工程师、4G网络优化人员及通信工程学生的LTE仿真操作手册,系统讲解如何利用法国Forsk公司Atoll软件完成从工程新建、地图导入、投影设置、传播模型配置到基站添加、MIMO与Bearer参数设定的完整…

2026/10/16 18:22:03 阅读更多 →

日新闻

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

个人 AI Agent 平台接入 TaoToken:统一 Key 与 API 通道的配置大纲

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

2026/10/16 0:00:05 阅读更多 →
信号与系统频域分析作业解题指南

信号与系统频域分析作业解题指南

1. 作业背景与核心要求解析信号与系统作为电子信息类专业的核心基础课,其作业设计往往直接关联课程的核心知识框架。2026年春季第六次作业的布置,通常对应着课程进展到频域分析的关键阶段。根据常规教学进度推测,本次作业可能涉及以下核心内容…

2026/10/16 0:00:05 阅读更多 →
Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

Django MVT实战:从零构建图书借阅系统,彻底搞懂Model-View-Template分层

1. 从一个"四不像"的练手项目说起如果你已经看完了Django的官方教程前几章,跟着敲完了投票应用,大概会有一种"我好像会了,又好像什么都不会"的割裂感。教程里每个知识点都是拆开的——这一章讲模型,下一章讲视…

2026/10/16 0:00:05 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/16 14:23:36 阅读更多 →