首页/新闻资讯/正文详情

DeepCTR 模型方法完全指南:compile、fit、evaluate、predict 与生成器训练实战解析

发布时间:2026/9/26 7:19:52 来源:云帆数科 栏目:资讯中心
DeepCTR 模型方法完全指南:compile、fit、evaluate、predict 与生成器训练实战解析
人工智能深度学习机器学习【免费下载链接】DeepCTREasy-to-use,Modular and Extendible package of deep-learning based CTR models .项目地址https://gitcode.com/gh_mirrors/de/DeepCTR点击查看免费下载本文以 DeepCTR 官方文档 docs/source/Model_Methods.md 为骨架系统讲解 DeepCTR 中每个深度学习 CTR 模型对外暴露的全部 Keras 风格方法从compile配置训练、fit启动训练到evaluate/predict评估预测再到train_on_batch、fit_generator等批量与生成器接口以及get_layer层检索。文中结合仓库中的真实示例Criteo 分类、MovieLens 回归、多任务 MMOE、行为序列 DIN与源码实现帮助读者把这些方法正确、完整地用在自己的 CTR 模型训练流程中。DeepCTR 中所有模型DeepFM、DCN、xDeepFM、DIN、MMOE 等本质上都是返回tf.keras.Model实例的工厂函数例如 deepctr/models/deepfm.py 中DeepFM(...)的 docstring 明确写着 A Keras model instance并在函数末尾通过Model(inputsinputs_list, outputsoutput)deepctr/models/deepfm.py构造模型对象。因此你拿到手的模型对象天然继承 TensorFlow Keras 的完整方法集本文所讲的一切方法都可以直接作用于任意 DeepCTR 模型。一、方法总览一个 DeepCTR 模型可以做什么DeepCTR 模型对象tensorflow.keras.models.Model实例在训练生命周期中主要依赖以下方法方法作用适用阶段compile(optimizer, loss, metrics, ...)配置优化器、损失函数与评估指标训练前fit(x, y, batch_size, epochs, ...)在 Numpy 数据上训练训练中fit_generator(generator, steps_per_epoch, ...)在生成器/Sequence数据上训练训练中evaluate(x, y, ...)/evaluate_generator(...)在测试数据上返回 loss 与指标测试predict(x, ...)/predict_generator(...)生成预测结果预测train_on_batch/test_on_batch/predict_on_batch单批数据的梯度更新/测试/预测调试与逐批控制get_layer(name, index)按名称或索引检索层模型分析仓库中的示例脚本完整演示了这套流程。以 examples/run_classification_criteo.py 为例一个典型的分类任务生命周期是model DeepFM(linear_feature_columns, dnn_feature_columns, taskbinary) model.compile(adam, binary_crossentropy, metrics[binary_crossentropy], ) history model.fit(train_model_input, train[target].values, batch_size256, epochs10, verbose2, validation_split0.2, ) pred_ans model.predict(test_model_input, batch_size256) print(test LogLoss, round(log_loss(test[target].values, pred_ans), 4)) print(test AUC, round(roc_auc_score(test[target].values, pred_ans), 4))注意由于 DeepCTR 的模型输入是多输入结构每个特征字段对应一个Input层train_model_input是以特征名为键的字典由get_feature_names生成这也是fit/predict的x参数最常用的传法。下面逐个方法深入讲解。二、compile配置训练方式compile(optimizer, lossNone, metricsNone, loss_weightsNone, sample_weight_modeNone, weighted_metricsNone, target_tensorsNone)compile负责配置模型的训练方式优化器、损失函数、评估指标等必须在fit之前调用。参数说明optimizer字符串优化器名称或优化器实例。DeepCTR 示例中最常用的写法是直接传字符串adamexamples/run_classification_criteo.py。也可传入实例如tf.keras.optimizers.Adam(lr0.001)。loss字符串损失函数名或损失函数。模型只有一个输出时直接传字符串即可。当模型有多个输出时可以传字典或列表为每个输出指定不同损失最终被最小化的 loss 是所有单个 loss 之和。这一特性在 DeepCTR 多任务模型上非常关键见下文多任务章节。metrics训练和测试期间要评估的指标列表通常用metrics[accuracy]。多输出模型可以传字典如metrics{output_a: accuracy}。DeepCTR 示例中常用metrics[binary_crossentropy]或metrics[mse]见 examples/run_regression_movielens.py。loss_weights可选列表或字典为不同模型输出指定标量系数Python 浮点数。被最小化的 loss 是各输出 loss 按其loss_weights系数加权的加权和。传列表时与模型输出一一对应传字典时以输出名字符串映射到标量系数。sample_weight_mode若需要逐时间步样本加权2D 权重设为temporalNone表示按样本加权1D。多输出模型可传字典或列表为每个输出指定不同模式。weighted_metrics训练和测试期间要评估、并按 sample_weight 或 class_weight 加权的指标列表。target_tensors默认情况下 Keras 会为模型目标创建占位符训练时用目标数据喂入。若想使用自己的目标张量此时 Keras 在训练时不期望外部 Numpy 目标数据可传该参数单输出模型传单个张量多输出传张量列表或传输出名到目标张量的字典。异常当optimizer、loss、metrics或sample_weight_mode参数无效时抛出ValueError。DeepCTR 实战要点多任务模型的compile直接体现了上述多输出机制。仓库示例 examples/run_mtl.py 中MMOE 模型有两个输出income 与 marital 两个二分类任务因此model MMOE(dnn_feature_columns, tower_dnn_hidden_units[], task_types[binary, binary], task_names[label_income, label_marital]) model.compile(adam, loss[binary_crossentropy, binary_crossentropy], metrics[binary_crossentropy], )这里loss是一个列表与两个输出一一对应。从 deepctr/models/multitask/esmm.py 源码可以看到多任务模型的输出结构ctr_pred PredictionLayer(binary, nametask_names[0])(ctr_logit)、cvr_pred PredictionLayer(binary)(cvr_logit)最终Model(inputsinputs_list, outputs[ctr_pred, ctcvr_pred])——即返回多个命名输出。此时若需要针对不同任务分配不同权重就可以用loss_weights字典例如loss_weights{ctr: 1.0, ctcvr: 1.0}。三、fit在 Numpy 数据上训练fit(xNone, yNone, batch_sizeNone, epochs1, verbose1, callbacksNone, validation_split0.0, validation_dataNone, shuffleTrue, class_weightNone, sample_weightNone, initial_epoch0, steps_per_epochNone, validation_stepsNone, validation_freq1)fit在给定数据上训练模型指定轮数epochs。参数说明x训练数据。模型单输入时传 Numpy 数组多输入时传 Numpy 数组列表若输入层被命名可传输入名 → Numpy 数组的字典。DeepCTR 模型全部是多输入结构且输入层以特征名命名因此仓库示例统一采用字典传法train_model_input {name: train[name] for name in feature_names}examples/run_classification_criteo.py。x可为None默认此时从框架原生张量如 TensorFlow data tensors取数据。y目标标签数据。单输出传 Numpy 数组多输出传 Numpy 数组列表命名输出可传字典。多任务模型示例中y为两个标签数组组成的列表[train[label_income].values, train[label_marital].values]examples/run_mtl.py。batch_size整数或None每次梯度更新的样本数默认 32。仓库示例中分类与回归任务普遍用batch_size256。epochs整数训练轮数。与initial_epoch联用时理解为最终 epoch模型会一直训练到索引为epochs的 epoch 结束。注意 epochs 是最终轮数而非再训练几轮。verbose整数0、1 或 2。0 静默1 显示进度条2 每轮一行。DeepCTR 示例多用verbose2避免长进度条刷屏。callbackstf.keras.callbacks.Callback实例列表训练与验证期间生效如ModelCheckpoint、EarlyStopping、ReduceLROnPlateau等。validation_split0 到 1 之间的浮点数训练数据中被留作验证集的比例。模型不在这部分数据上训练而是每轮结束时评估其 loss 与指标。验证数据取自x和y的最后一部分样本在 shuffle 之前选取。validation_data元组(x_val, y_val)或(x_val, y_val, val_sample_weights)每轮结束时在其上评估 loss 与指标模型不在其上训练。validation_data会覆盖validation_split。DeepCTR 示例中两种方式都有使用分类示例用validation_split0.2DIN 序列示例用validation_split0.5examples/run_din.py。shuffle布尔值是否每轮前打乱训练数据或字符串batch针对 HDF5 数据的特殊选项按 batch 大小的块打乱。当steps_per_epoch不为None时该参数无效。class_weight可选字典将类别索引整数映射到权重浮点数仅训练期间用于加权损失函数。可用于让模型更关注欠表示类别。sample_weight可选 Numpy 数组训练样本权重仅训练期间用于加权损失。可传与样本数等长的 1D 数组或在时序数据下传形状(samples, sequence_length)的 2D 数组以逐时间步加权此时需在compile()中指定sample_weight_modetemporal。initial_epoch整数开始训练的起始轮数用于恢复之前的训练。steps_per_epoch整数或None。声明一个 epoch 结束前要执行的步数批次数。使用 TensorFlow data tensors 训练时默认None等于样本数除以 batch size无法确定时为 1。validation_steps仅在指定了steps_per_epoch时相关。停止前用于验证的步数批次数。validation_freq仅在提供验证数据时相关。整数或列表/元组/集合。整数表示每多少轮执行一次验证如validation_freq2每 2 轮验证一次列表等容器则指定执行验证的具体轮次如validation_freq[1, 2, 10]在第 1、2、10 轮结束时验证。返回值返回History对象。其History.history属性记录了各轮训练 loss、指标值以及验证 loss、验证指标值若适用。异常若模型从未compile抛出RuntimeError。若输入数据与模型期望不匹配抛出ValueError。DeepCTR 实战要点仓库测试工具check_modeltests/utils.py用一套完整流程验证所有模型的训练接口可用性model.compile(adam, binary_crossentropy, metrics[binary_crossentropy]) model.fit(x, y, batch_size100, epochs1, validation_split0.5)它随后还会调用model.save_weights(...)/model.load_weights(...)以及save_model(model, ...)/load_model(model, ...)验证模型的序列化能力。这提醒我们fit 之后还要考虑模型的保存与加载DeepCTR 层带有自定义对象加载时需传入custom_objects该对象由 deepctr/layers 导出这是生产环境部署的必要环节。四、evaluate在测试模式评估evaluate(xNone, yNone, batch_sizeNone, verbose1, sample_weightNone, stepsNone, callbacksNone)以批量方式在测试模式计算并返回模型的 loss 值与指标值。参数说明x/y与fit相同的输入形式——Numpy 数组、数组列表或输入名/输出名 → Numpy 数组的字典框架原生张量时可为None。batch_size整数或None每个评估步的样本数默认 32。verbose0 或 10 静默1 显示进度条。sample_weight可选 Numpy 数组测试样本权重1D 或时序 2D2D 时需compile()中指定sample_weight_modetemporal。steps整数或None声明评估轮次结束前要执行的步数批次数默认None时忽略。callbacks评估期间应用的 callback 列表。返回值单输出且无指标时返回标量测试 loss多输出和/或有指标时返回标量列表。model.metrics_names属性给出各标量输出的显示标签。DeepCTR 实战要点在 Estimator 接口deepctr.estimator中评估方法被封装为model.evaluate(input_fn)见 tests/utils.py 的check_estimator。而普通 Keras 模型下由于predict之后通常还要结合 sklearn 计算 AUC/LogLoss仓库示例更常用model.predictroc_auc_score/log_loss的方式完成离线评估evaluate则适合快速查看测试集上的 loss 与内置指标。五、predict生成预测predict(x, batch_sizeNone, verbose0, stepsNone, callbacksNone)为输入样本批量生成预测输出。参数说明x输入数据Numpy 数组多输入则为数组列表。DeepCTR 模型通常传特征名字典。batch_size整数默认 32。verbose0 或 1。steps整数或None声明预测轮次结束前执行的步数默认None时忽略。callbacks预测期间应用的 callback 列表。返回值预测结果的 Numpy 数组或数组列表。异常输入数据与模型期望不匹配或状态模型收到的样本数不是 batch size 的整数倍时抛出ValueError。DeepCTR 实战要点分类任务的形状taskbinary时模型输出经PredictionLayer的 sigmoid 变换并 reshape 为(-1, 1)见 deepctr/layers/core.py所以predict返回形状为(n_samples, 1)的数组可直接用于log_loss(test[target].values, pred_ans)examples/run_classification_criteo.py与roc_auc_score。回归任务的形状taskregression时预测层不做 sigmoid直接输出线性 logit同样 reshape 为(-1, 1)因此 examples/run_regression_movielens.py 中可以直接用mean_squared_error(test[target].values, pred_ans)计算 MSE。多任务模型的返回列表多输出模型predict返回数组列表下标与输出顺序一致。MMOE 示例中pred_ans[0]对应第一个任务incomepred_ans[1]对应第二个任务marital分别计算 AUCexamples/run_mtl.py。ESMM 这类模型deepctr/models/multitask/esmm.py输出[ctr_pred, ctcvr_pred]两个预测数组可分别用于 CTR 与 CTCVR 的评估。六、批量级方法train_on_batch、test_on_batch、predict_on_batch这三组方法在单个 batch 上操作适合细粒度控制训练过程、调试或自定义训练循环。6.1 train_on_batchtrain_on_batch(x, y, sample_weightNone, class_weightNone)在单个 batch 数据上执行一次梯度更新。x训练数据 Numpy 数组多输入则为数组列表若所有输入均命名可传字典。DeepCTR 模型可直接传特征名字典。y目标数据 Numpy 数组多输出则为数组列表所有输出均命名时可传字典。sample_weight可选与 x 等长的权重数组时序数据可传(samples, sequence_length)的 2D 数组需配合sample_weight_modetemporal。class_weight可选字典类别索引到权重的映射仅训练期间加权该类别样本的损失。返回值单输出且无指标时返回标量训练 loss多输出和/或有指标时返回标量列表。6.2 test_on_batchtest_on_batch(x, y, sample_weightNone)在单个 batch 上测试模型参数含义同train_on_batch返回单输出标量测试 loss 或多输出/有指标时的标量列表。6.3 predict_on_batchpredict_on_batch(x)对单个 batch 返回预测结果x为 Numpy 数组形式的输入样本返回 Numpy 数组或数组列表。DeepCTR 实战要点train_on_batch在仓库测试中被用于验证带training标志的层如 DNN 中的 Dropout/BatchNorm在训练模式下的行为——tests/utils.py 中layer_test会先model.compile(rmsprop, mse)再model.train_on_batch(input_data, actual_output)。这提示我们train_on_batch与predict_on_batch组合可以实现逐批喂数据、逐批取 loss/预测的自定义训练与在线学习逻辑。七、生成器与 Sequence 接口fit_generator、evaluate_generator、predict_generator当数据无法一次性载入内存或需要实时做数据增强时使用生成器Python generator 或tf.keras.utils.Sequence实例逐批产出数据。7.1 fit_generatorfit_generator(generator, steps_per_epochNone, epochs1, verbose1, callbacksNone, validation_dataNone, validation_stepsNone, validation_freq1, class_weightNone, max_queue_size10, workers1, use_multiprocessingFalse, shuffleTrue, initial_epoch0)在生成器逐批产出的数据上训练模型。生成器与模型并行运行以保证效率例如可以在 CPU 上实时做数据增强同时在 GPU 上训练。使用tf.keras.utils.Sequence可保证每个 epoch 内数据顺序且每条数据仅使用一次配合use_multiprocessingTrue。参数说明generator生成器或Sequencetf.keras.utils.Sequence实例多进程时避免重复数据。生成器每个输出必须为元组(inputs, targets)或元组(inputs, targets, sample_weights)。该元组生成器单次输出构成一个 batch因此元组中所有数组长度必须相同等于该 batch 大小。不同 batch 大小可以不同如最后一个 batch 常小于 batch_size。生成器需要无限循环产出数据当模型已看到steps_per_epoch个 batch 时一个 epoch 结束。steps_per_epoch整数声明一个 epoch 结束前从generator取多少个 batch。通常应等于ceil(num_samples / batch_size)。对于Sequence可选未指定时使用len(generator)作为步数。epochs整数训练轮数理解为最终 epoch与initial_epoch联用。verbose0/1/2。callbacks训练期间应用的 callback 列表。validation_data可为验证数据生成器或Sequence或元组(x_val, y_val)、(x_val, y_val, val_sample_weights)每轮结束时在其上评估 loss 与指标模型不在这部分数据上训练。validation_steps仅当validation_data是生成器时相关每轮结束时从验证生成器取多少个 batch通常等于验证集样本数除以 batch size。Sequence可选未指定时用len(validation_data)。validation_freq仅当提供验证数据时相关。整数或容器列表/元组等含义同fit的validation_freq。class_weight类别索引到权重的字典仅训练期间生效。max_queue_size生成器队列最大容量默认 10。workers进程数默认 1为 0 时生成器在主线程执行。use_multiprocessing布尔值True时使用基于进程的并行。注意依赖多进程的实现要求生成器参数可 picklable否则无法传给子进程。shuffle布尔值每个 epoch 开始时是否打乱 batch 顺序仅对Sequence实例生效steps_per_epoch不为None时无效。initial_epoch起始轮数用于恢复训练。返回值History对象。异常生成器产出非法格式数据时抛出ValueError。官方文档示例完整保留可直接运行def generate_arrays_from_file(path): while True: with open(path) as f: for line in f: # create numpy arrays of input data # and labels, from each line in the file x1, x2, y process_line(line) yield ({input_1: x1, input_2: x2}, {output: y}) model.fit_generator(generate_arrays_from_file(/my_file.txt), steps_per_epoch10000, epochs10)DeepCTR 实战要点DeepCTR 的模型输入是命名输入层的多输入结构因此生成器产出字典时应以get_feature_names(...)得到的特征名为键例如yield ({name: batch_data[name] for name in feature_names}, label)与直接fit的字典传法保持一致。若模型含行为序列特征VarLenSparseFeat还需同时产出seq_length等长度字段参考 examples/run_din.py 中seq_length的构造这类数据的按批产出正是fit_generator的用武之地。7.2 evaluate_generatorevaluate_generator(generator, stepsNone, callbacksNone, max_queue_size10, workers1, use_multiprocessingFalse, verbose0)在数据生成器上评估模型。生成器返回的数据格式与test_on_batch接受的一致元组(inputs, targets)或(inputs, targets, sample_weights)或Sequence实例。generator逐批产出数据的生成器或Sequence。steps停止前从生成器取多少个 batchSequence可选未指定时用len(generator)。callbacks评估期间应用的 callback 列表。max_queue_size生成器队列最大容量。workers进程数默认 10 表示主线程执行。use_multiprocessingTrue时使用基于进程的并行生成器参数需可 picklable。verbose0 或 1。返回值单输出无指标时返回标量测试 loss多输出/有指标时返回标量列表。异常生成器产出非法格式数据时抛出ValueError。7.3 predict_generatorpredict_generator(generator, stepsNone, callbacksNone, max_queue_size10, workers1, use_multiprocessingFalse, verbose0)从数据生成器为输入样本生成预测。生成器返回的数据格式与predict_on_batch接受的一致逐批输入样本的生成器或Sequence实例。generator逐批产出输入样本的生成器或Sequence。steps停止前取多少个 batchSequence可选未指定时用len(generator)。callbacks预测期间应用的 callback 列表。max_queue_size/workers/use_multiprocessing/verbose含义同上。返回值预测结果的 Numpy 数组或数组列表。异常生成器产出非法格式数据时抛出ValueError。八、get_layer检索模型内部层get_layer(nameNone, indexNone)根据层名称唯一或索引检索层实例。若name和index同时提供index优先。索引基于自底向上的水平图遍历顺序。name字符串层名称。index整数层索引。返回值一个层实例。异常层名称或索引无效时抛出ValueError。DeepCTR 实战要点DeepCTR 的模型工厂函数内部通过build_input_features构建命名输入层通过PredictionLayer(task, nametask_names[0])为输出命名deepctr/models/multitask/esmm.py。因此可以用model.get_layer(ctr)直接拿到命名输出层或在fit/predict中通过输出名传参。get_layer也常用于拿到中间DNN、FM等层做特征可视化或中间层特征提取是调试与剖析模型结构的有力工具。九、DeepCTR 中的完整实战套路对照示例把上述方法串起来DeepCTR 的标准使用模式可以概括为四步与仓库所有示例一致构建特征列用SparseFeat/DenseFeat/VarLenSparseFeat描述特征get_feature_names得到输入名列表见 examples/run_classification_criteo.py。实例化模型调用模型工厂函数如DeepFM(linear_feature_columns, dnn_feature_columns, taskbinary)得到 KerasModel。compile fit按任务类型选择 loss——分类用binary_crossentropy、回归用mse、多任务用 loss 列表/字典fit的x用特征名字典y传标签多任务传标签列表。predict 评估predict得到预测数组多任务为列表再用 sklearn 的log_loss/roc_auc_score/mean_squared_error计算指标。三种任务类型的完整对照任务task 参数compile loss / metricspredict 返回评估指标示例二分类binarybinary_crossentropy/[binary_crossentropy](n, 1)数组log_loss、roc_auc_score回归regressionmse/[mse](n, 1)数组mean_squared_error多任务task_types列表loss 列表/字典数组列表每任务一个每个任务分别算 AUC十、常见陷阱与注意事项忘记 compilefit前必须compile否则抛出RuntimeError。train_on_batch/test_on_batch同样需要先 compile。多输出与 loss/metrics 的形态多任务模型必须给每个输出配 loss列表或字典否则会因输出与 loss 数量不匹配而报错或行为异常。输入字典的键fit/predict/evaluate传入的字典键必须与get_feature_names输出完全一致漏传或误传字段会导致ValueError输入数据与模型期望不匹配。预测结果形状PredictionLayer会把输出 reshape 为(-1, 1)deepctr/layers/core.py计算log_loss/roc_auc_score时可直接使用无需额外 squeezesklearn 可接受二维形状。生成器必须无限循环fit_generator的 generator 需要while True循环产出数据epoch 由steps_per_epoch界定否则数据耗尽会导致训练中断。版本适配文档中的方法签名基于 tf.keras API当前仓库代码统一使用tensorflow.keras见 deepctr/models/deepfm.py 的from tensorflow.keras.models import Model。部分旧 API如fit_generator在较新 TensorFlow 中已并入fit在新版本下可能有别名或弃用提示具体以所安装的 TensorFlow 版本为准。模型保存/加载DeepCTR 包含自定义层用load_model恢复完整模型时需传入custom_objectsDeepCTR 已导出见 tests/utils.py 的用法仅保存权重可用save_weights/load_weights。掌握compile、fit、evaluate、predict及生成器系列方法即可完成 DeepCTR 从训练到评估、再到批量/流式数据场景的完整闭环。深入理解这套方法与 examples 目录下的示例、tests/utils.py 中的check_model测试流程就能快速把任意 DeepCTR 模型接入自己的数据管道。赞分享人工智能深度学习机器学习【免费下载链接】DeepCTREasy-to-use,Modular and Extendible package of deep-learning based CTR models .项目地址https://gitcode.com/gh_mirrors/de/DeepCTR点击查看免费下载相关推荐PaddleSeg 核心 API 详解paddleseg.core 中 train / evaluate / predict 的训练、评估与预测实战PaddleSeg 核心 API 详解paddleseg.core 中 train / evaluate / predict 的训练、评估与预测实战 padd人工智能计算机视觉预训练TensorFlow2 训练模型的 3 种方法fit、train_on_batch 与自定义训练循环实战TensorFlow2 训练模型的 3 种方法fit、train_on_batch 与自定义训练循环实战 本文是《30天吃掉那只TensorFlow2》高阶教程深度学习机器学习PaddleSeg paddleseg.core 接口详解train、evaluate 与 predict 的训练评估全流程PaddleSeg paddleseg.core 接口详解train、evaluate 与 predict 的训练评估全流程 paddleseg.core 是人工智能计算机视觉预训练上一篇索引优化system-design数据库性能提升的关键技术下一篇如何利用Ruff的列表推导式检查实现Pythonic代码的自动化验证创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

API服务端故障排查与修复实战:超时、重试、缓存、限流全解析
API服务端故障排查与修复实战:超时、重试、缓存、限流全解析

前段时间接手了一个老项目的接口服务维护,项目代号沿用旧名叫“168开奖网”,听起来像那么回事,实际上它就是一个给下游客户端提供实时数据订阅的网关层。交接文档基本等于没有,代码里还留着各种历史分支,最直观的表现就… · 2026/9/26 7:19:52

WPS免登录解锁本地编辑:关闭登录引导与弹窗的完整设置指南
WPS免登录解锁本地编辑:关闭登录引导与弹窗的完整设置指南

很多朋友都有这种经历:电脑上装了 WPS,打开文档想改一改,结果界面右上角一直有个“登录”的提示,甚至某些功能按钮点一下就直接弹登录框,瞬间没了脾气。有人干脆去找“wps破解版”“wps激活码”,我特别不建… · 2026/9/26 7:19:52

24类商品图像数据集:工业级商品分类实战指南
24类商品图像数据集:工业级商品分类实战指南

简介:本资源是一份开箱即用的商品图像分类数据集,面向深度学习初学者、计算机视觉课程实践者及图像分类项目开发者,专为快速验证模型性能与训练流程设计。数据集涵盖手机、化妆品、酒等24个常见商品类别,已严格划分为train&#x… · 2026/9/26 7:19:46

UE5建模工具链实战:Modeling Mode与Geometry Script程序化生成指南
UE5建模工具链实战:Modeling Mode与Geometry Script程序化生成指南

1. 项目缘起与整体设计思路1.1 为什么要在 UE5 里折腾建模工具链第一次在 UE5 里看到 Modeling Mode 的时候,我其实没太当回事——毕竟做了这么多年场景,Max、Blender、Maya 哪个不比引擎里那套半成品顺手?直到有个项目要求做一套程序化生成的… · 2026/9/26 7:58:19

Windows 下 OpenClaw 接入飞书机器人:部署避坑与并发调优实战
Windows 下 OpenClaw 接入飞书机器人:部署避坑与并发调优实战

老实说,把 OpenClaw 和飞书打通这件事,我在 Windows 上整整折腾了一个周末。如果你也在搜 Windows 部署 OpenClaw、飞书机器人、AI 助手这类关键词,那这篇记录应该能帮你省下至少一个通宵。我尽量不说废话,把每一步踩过的坑、查过… · 2026/9/26 7:58:19

压图别再开PS了:Squoosh与Caesium让图片压缩三秒高效搞定
压图别再开PS了:Squoosh与Caesium让图片压缩三秒高效搞定

回想一下你第一次打开Photoshop是为了什么?我猜超过一半的人会回答:把图片变小。我自己也是这样,大学那会儿要传作业到课程平台,单张图片不能超过2MB,花了一晚上学会人生第一个"PS技能"——图像大小调整&… · 2026/9/26 7:58:19

测试工程师KPI怎么定?一套可落地的指标体系与绩效复盘指南
测试工程师KPI怎么定?一套可落地的指标体系与绩效复盘指南

干测试这一行,聊到KPI几乎人人都有话说。有人觉得测出来的bug越多功劳越大,有人觉得自己天天忙得要死最后绩效却一般,还有人被“线上出故障一票否决”压得喘不过气。我在测试行业待了十多年,从一线测试做到测试负责人,… · 2026/9/26 7:58:19

TensorSharp 支持 Jev 模式了:一次去噪,直接读出决策
TensorSharp 支持 Jev 模式了:一次去噪,直接读出决策

目录 先说 Jev 是什么 TensorSharp 里是怎么落地的 怎么调 HTTP 原生 .NET 接口能干什么 为什么快 4–5 倍 哪些事它明确不做 相关链接 2026年9月22日 vLLM 合并了 PR #57250,给 DiffusionGemma 加了一种 Jev 风格的结构化读取模式。我们跟得很快&#xff… · 2026/9/26 7:58:13

2026梦幻防红系统源码解析:抖音圆码跳转拦截与域名轮换实战
2026梦幻防红系统源码解析:抖音圆码跳转拦截与域名轮换实战

简介:这是一套面向社群运营、私域推广及小程序开发者的防红跳转系统源码,针对链接易被平台拦截、域名频繁被封的痛点,提供多域名池智能切换方案,官方宣称防拦截率可达99%以上。资源包共152个文件,约21.72MB&#xff0c… · 2026/9/26 7:58:13

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

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

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码