TensorFlow 2教学级工程课件:可运行、可复现、可部署的实战教案
简介本资源是《TensorFlow2深度学习实战全书》配套的电子教案完整版课件面向人工智能初学者、高校教学人员及深度学习入门开发者系统梳理深度学习核心概念、主流应用场景与TensorFlow 2.x实践路径。课件共1个PPTX文件大小27.1MB内容覆盖深度学习定义与特征学习机制、物体检测R-CNN等、视觉定位、图像分割、图像标题生成NIC模型、风格迁移、GAN图像生成、情感分析、无人驾驶及机器翻译等10大应用方向并穿插DeepID人脸识别、Hinton语音识别突破等典型案例结构清晰、图文并茂、理论结合实例。目前已有129人学习下载可直接用于课堂教学、自学梳理或技术分享是理解深度学习技术脉络与落地场景的高质量教学辅助材料。1. 这不是PPT是能直接跑通模型、调参、部署的「教学级工程快照」一份带完整数据流、可复现训练日志、含推理接口封装的TensorFlow 2课件到底长什么样你点开过太多标着“TensorFlow 2实战”的PPT——首页炫酷架构图中间几页API列表最后一页写着“谢谢聆听”。但真想让学生在30分钟内从加载MNIST到导出TFLite模型再用OpenCV喂图验证翻遍整套课件找不到一行可粘贴执行的model.fit()调用、没有tf.data.Dataset.from_tensor_slices()的真实构造逻辑、更别提tf.function装饰后性能对比的量化表格。这份《TensorFlow2深度学习实战全书电子教案完整版课件.pptx》不是幻灯片堆砌而是把一个典型工业级图像分类Pipeline含数据增强链、混合精度训练、Checkpoint断点续训、SavedModel导出、轻量化部署验证拆解成17个可逐帧演示的代码块对应可视化图表关键参数影响热力图每页右下角嵌入真实运行时截图含GPU显存占用、batch耗时、loss曲线收敛拐点。它服务的对象很明确高校AI课程主讲教师、企业内训讲师、自学转行者——你需要的不是概念图谱而是明天上课就能让学生在Jupyter里敲出第一行tf.keras.applications.EfficientNetV2S并看到准确率跳变的「教学最小可行单元」。它不承诺覆盖所有API但保证每个展示模块背后都有可下载的配套notebook、预处理脚本、以及经实测的硬件兼容清单RTX 3060/4090/T4实测通过。2. 从幻灯片到可执行环境如何把PPT里的代码块还原成本地可验证的TensorFlow 2训练流程提示本章所有操作均基于课件中第5讲「CNN图像分类全流程」的PPT页面反向工程。课件未提供独立代码包但每页代码块均标注了所在幻灯片编号如“Slide-5-12”我们据此构建可复现环境。2.1 解析PPT中的代码结构识别真实可执行片段与教学简化标记课件中代码并非全部可直接运行。需区分三类内容可执行核心包含import tensorflow as tf、model.compile()、model.fit()等完整调用链且无占位符如# TODO: add your data path教学简化标记使用...省略中间步骤如数据加载部分只写dataset load_data(...)但课件附录页Slide-Appx-A提供了该函数的完整实现伪代码示意仅展示逻辑结构如for epoch in range(EPOCHS): ...需结合上下文参数表补全。我们以Slide-5-12为例该页展示ResNet50微调训练代码# Slide-5-12 原始PPT代码块已去格式化 import tensorflow as tf from tensorflow.keras.applications import ResNet50 base_model ResNet50(weightsimagenet, include_topFalse, input_shape(224,224,3)) base_model.trainable False model tf.keras.Sequential([ base_model, tf.keras.layers.GlobalAveragePooling2D(), tf.keras.layers.Dense(128, activationrelu), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activationsoftmax) ]) model.compile(optimizeradam, losssparse_categorical_crossentropy, metrics[accuracy]) # 数据加载省略见Slide-Appx-B history model.fit(train_ds, epochs10, validation_dataval_ds)这段代码缺少三个关键落地要素①train_ds/val_ds的具体构造方式课件Slide-Appx-B提供create_dataset()函数②input_shape是否适配实际数据课件Slide-3-7注明“本例使用自建Flower-102子集统一resize至224×224”③weightsimagenet在离线环境下的加载路径课件Slide-Appx-C说明“若无网络可提前下载h5权重至./weights/resnet50.h5”。因此还原第一步是补全数据流闭环。2.2 构建可复现数据管道用课件附录函数真实数据集生成tf.data.Dataset课件Slide-Appx-B提供的create_dataset()函数如下已提取为独立py文件# create_dataset.py —— 来源于课件Slide-Appx-B import tensorflow as tf import pathlib def create_dataset(data_dir, batch_size32, img_size(224, 224), shuffleTrue): 根据课件Slide-3-7要求Flower-102子集5类预处理含随机旋转缩放色彩抖动 参数说明 data_dir: 数据根目录结构需为 data_dir/class_name/*.jpg img_size: 严格按Slide-5-12要求设为(224,224) shuffle: 课件Slide-4-3强调训练集必须shuffle验证集禁用 data_dir pathlib.Path(data_dir) class_names sorted([item.name for item in data_dir.glob(*) if item.is_dir()]) def preprocess_image(file_path, label): image tf.io.read_file(file_path) image tf.image.decode_jpeg(image, channels3) image tf.cast(image, tf.float32) / 255.0 # 归一化至[0,1] # 课件Slide-4-5指定的数据增强组合 if shuffle: image tf.image.random_flip_left_right(image) image tf.image.random_rotation(image, 0.1) # ±10度 image tf.image.random_saturation(image, 0.8, 1.2) image tf.image.resize(image, img_size) return image, label # 构建文件路径-标签映射 all_image_paths list(data_dir.glob(*/*.jpg)) all_labels [class_names.index(str(p).split(/)[-2]) for p in all_image_paths] # 创建Dataset ds tf.data.Dataset.from_tensor_slices((all_image_paths, all_labels)) if shuffle: ds ds.shuffle(buffer_sizelen(all_image_paths)) ds ds.map(preprocess_image, num_parallel_callstf.data.AUTOTUNE) ds ds.batch(batch_size) ds ds.prefetch(tf.data.AUTOTUNE) return ds, class_names # 使用示例需提前准备数据 # train_ds, class_names create_dataset(./data/flower102_train, shuffleTrue) # val_ds, _ create_dataset(./data/flower102_val, shuffleFalse)关键参数说明batch_size32课件Slide-5-8明确指出“RTX 3060显存限制下batch_size超过32将OOM”此值为课件实测安全上限img_size(224,224)与Slide-5-12中input_shape强绑定若修改需同步更新模型输入层shuffleFalsefor val_ds课件Slide-4-3用红色高亮强调“验证集shuffle将导致评估结果不可复现”。2.3 启动训练并捕获课件级日志让每次运行都生成可对比的metrics.csv课件Slide-5-15展示了训练日志分析方法要求记录每epoch的loss、accuracy、val_loss、val_accuracy及lr学习率。我们扩展model.fit()调用加入自定义Callback# logging_callback.py —— 实现课件Slide-5-15要求的日志结构 import csv import os from tensorflow.keras.callbacks import Callback class MetricsLogger(Callback): def __init__(self, log_path./logs/training_metrics.csv): super().__init__() self.log_path log_path # 按课件Slide-5-15表头创建CSV self.headers [epoch, loss, accuracy, val_loss, val_accuracy, lr] os.makedirs(os.path.dirname(log_path), exist_okTrue) if not os.path.exists(log_path): with open(log_path, w, newline) as f: writer csv.writer(f) writer.writerow(self.headers) def on_train_begin(self, logsNone): self.epoch_count 0 def on_epoch_end(self, epoch, logsNone): self.epoch_count 1 lr float(tf.keras.backend.get_value(self.model.optimizer.learning_rate)) row [ self.epoch_count, f{logs.get(loss, 0):.4f}, f{logs.get(accuracy, 0):.4f}, f{logs.get(val_loss, 0):.4f}, f{logs.get(val_accuracy, 0):.4f}, f{lr:.6f} ] with open(self.log_path, a, newline) as f: writer csv.writer(f) writer.writerow(row) # 在训练中启用 logger MetricsLogger(./logs/resnet50_finetune_metrics.csv) history model.fit( train_ds, epochs10, validation_dataval_ds, callbacks[logger] # ← 关键注入课件要求的日志器 )为什么必须用这个Callback而非默认verbose课件Slide-5-15指出“命令行输出日志无法用于后续loss曲线绘制必须结构化存储”。该Callback生成的CSV可直接被课件配套的plot_training_curve.pySlide-5-16提供读取并生成双Y轴图表左loss右accuracy完全复现课件中展示的收敛分析效果。3. 模型导出与跨平台验证从SavedModel到TFLite课件里没明说但实操必踩的3个硬核边界提示本章聚焦课件第8讲「模型部署」中隐含的技术断层——PPT展示model.save()和tflite_converter.convert()两行命令但真实环境需处理计算图冻结、算子兼容性、量化误差补偿等深层问题。3.1 SavedModel导出为什么课件推荐save_formattf而非HDF5课件Slide-8-3仅写model.save(./saved_models/resnet50_flower, save_formattf)但未解释为何不用.h5。真相是HDF5格式无法保存tf.function装饰的自定义训练循环、无法序列化tf.datapipeline、且在TF 2.16中已被标记为legacy。课件Slide-8-4的注释小字提到“HDF5仅适用于纯Keras Sequential/Functional模型本例含自定义预处理层必须用SavedModel”。正确导出应显式指定signatures以支持后续TFLite转换# 正确导出课件Slide-8-5隐含要求 tf.function def serving_fn(x): return model(x, trainingFalse) # 确保inference模式 # 生成ConcreteFunction concrete_func serving_fn.get_concrete_function( tf.TensorSpec(shape[None, 224, 224, 3], dtypetf.float32, nameinput) ) # 导出SavedModel课件Slide-8-5强调必须包含signature tf.saved_model.save( model, ./saved_models/resnet50_flower, signatures{serving_default: concrete_func} )参数说明tf.TensorSpec(...)课件Slide-8-6明确要求“输入shape必须与训练时一致224×224×3否则TFLite转换失败”signatures{serving_default: ...}课件Slide-8-7指出“无signature的SavedModel无法被TFLite Converter识别”。3.2 TFLite转换绕过课件未提及的“INT8量化陷阱”课件Slide-8-9展示converter tf.lite.TFLiteConverter.from_saved_model(./saved_models/resnet50_flower) tflite_model converter.convert() with open(./models/resnet50.tflite, wb) as f: f.write(tflite_model)但这是Float32版本课件Slide-8-10才提到“生产环境需INT8量化”。而直接加量化会触发经典报错# 错误做法课件未警示 converter.optimizations [tf.lite.Optimize.DEFAULT] converter.representative_dataset representative_data_gen # ← 若未正确定义报错正确做法课件Slide-8-11附录方案需提供representative_dataset且确保其数据分布匹配训练集# representative_data_gen.py —— 课件Slide-8-11提供 def representative_data_gen(): # 必须使用与训练相同的预处理课件Slide-4-5强调一致性 for _ in range(100): # 课件要求至少100个batch yield [next(iter(train_ds))[0].numpy()] # 取batch[0]的image tensor # 安全量化转换 converter tf.lite.TFLiteConverter.from_saved_model(./saved_models/resnet50_flower) converter.optimizations [tf.lite.Optimize.DEFAULT] converter.representative_dataset representative_data_gen converter.target_spec.supported_ops [ tf.lite.OpsSet.TFLITE_BUILTINS_INT8, tf.lite.OpsSet.SELECT_TF_OPS # 允许fallback到TF ops课件Slide-8-12说明 ] converter.inference_input_type tf.int8 converter.inference_output_type tf.int8 tflite_quant_model converter.convert() with open(./models/resnet50_int8.tflite, wb) as f: f.write(tflite_quant_model)关键避坑点yield [next(iter(train_ds))[0].numpy()]课件Slide-8-11用加粗警告“必须用训练集数据用测试集会导致量化偏差”tf.lite.OpsSet.SELECT_TF_OPS课件Slide-8-12解释“ResNet50的某些层如BatchNorm在INT8下无原生TFLite实现需fallback”。3.3 跨平台推理验证用OpenCVTFLite Runtime复现课件Slide-8-14的实时检测效果课件Slide-8-14展示手机端摄像头识别花卉但未提供PC端验证脚本。我们用OpenCV模拟# tflite_inference.py —— 复现课件Slide-8-14效果 import cv2 import numpy as np import tflite_runtime.interpreter as tflite # 加载INT8模型课件Slide-8-13指定路径 interpreter tflite.Interpreter(model_path./models/resnet50_int8.tflite) interpreter.allocate_tensors() # 获取IO tensors课件Slide-8-13强调必须匹配SavedModel的signature input_details interpreter.get_input_details()[0] output_details interpreter.get_output_details()[0] # 预处理与训练完全一致课件Slide-4-5 def preprocess_frame(frame): frame cv2.resize(frame, (224, 224)) frame frame.astype(np.float32) / 255.0 frame np.expand_dims(frame, axis0) # INT8量化需调整scale/zero_point课件Slide-8-11表格提供 scale, zero_point input_details[quantization] frame (frame / scale zero_point).astype(np.int8) return frame # 推理循环 cap cv2.VideoCapture(0) while True: ret, frame cap.read() if not ret: break input_data preprocess_frame(frame) interpreter.set_tensor(input_details[index], input_data) interpreter.invoke() output_data interpreter.get_tensor(output_details[index]) pred_class np.argmax(output_data[0]) confidence np.max(output_data[0]) # 显示课件Slide-8-14样式 cv2.putText(frame, fClass: {pred_class} ({confidence:.2%}), (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0,255,0), 2) cv2.imshow(TFLite Inference, frame) if cv2.waitKey(1) ord(q): break cap.release() cv2.destroyAllWindows()参数说明scale, zero_point input_details[quantization]课件Slide-8-11表格明确列出ResNet50输入层的量化参数scale0.003921568859368563, zero_point-128此处动态读取确保兼容cv2.FONT_HERSHEY_SIMPLEX课件Slide-8-14截图中字体风格非技术必需但提升教学一致性。4. 避坑指南课件不会告诉你但实操中90%人会在前30分钟栽倒的5个血泪现场注意以下问题均来自某高校AI实验课真实翻车记录与课件PPT页码严格对应。现象描述基于学生提交的报错截图原因分析经TensorFlow官方Issue及源码验证。4.1 现象Slide-5-12代码运行报NotFoundError: Failed to find dynamic library: nvcuda.dll原因课件Slide-2-1声明“支持CUDA 11.2”但未说明Windows用户需手动配置CUDA_PATH环境变量且nvcuda.dll路径未加入系统PATH。解决下载CUDA Toolkit 11.2课件Slide-2-2指定版本安装时勾选“Add CUDA to system PATH”或手动添加C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin到系统PATH。4.2 现象Slide-4-5数据增强启用后训练中报InvalidArgumentError: Input to reshape is a tensor with 1605632 values, but the requested shape has 11239424原因课件Slide-3-7要求数据resize至224×224但学生误将原始数据如300×300直接传入tf.image.resize()未先decode_jpeg。tf.image.resize()对未解码的JPEG二进制串reshape失败。解决严格按create_dataset.py中顺序执行read_file → decode_jpeg → resize禁止跳过decode步骤。4.3 现象Slide-8-9的TFLite转换卡死在INFO: TfLiteFlexDelegate delegate: 0x...后无响应原因课件Slide-8-12提到SELECT_TF_OPS但未说明需安装tensorflow-cpu非tensorflow以避免GPU op冲突。当系统同时存在GPU版TF和flex delegate时delegate初始化死锁。解决pip uninstall tensorflow -y pip install tensorflow-cpu2.15.0 # 课件Slide-2-3指定版本 pip install tflite-runtime2.15.04.4 现象Slide-5-15日志CSV中val_accuracy列全为0.0000原因课件Slide-4-3要求验证集shuffleFalse但学生在create_dataset()中误设shuffleTrue导致val_ds被随机打乱model.evaluate()时batch内标签错位。解决检查create_dataset()调用处确认val_ds参数为shuffleFalse并在代码中添加断言assert not val_ds._options.experimental_deterministic, val_ds must be deterministic4.5 现象Slide-8-14 OpenCV推理显示Class: 0 (0.00%)且恒定不变原因课件Slide-8-11量化参数表针对input_shape(224,224,3)但学生用手机拍摄图像1080×1920直接resize未做中心裁剪导致大量黑边进入模型INT8量化后黑边像素0值被映射为固定低激活。解决在preprocess_frame()中增加中心裁剪h, w frame.shape[:2] min_dim min(h, w) start_x (w - min_dim) // 2 start_y (h - min_dim) // 2 frame frame[start_y:start_ymin_dim, start_x:start_xmin_dim]5. 教学级模型调试技巧用课件里的“隐藏参数表”做精度-速度黄金平衡课件最易被忽略的宝藏是Slide-5-8右下角的灰色小字表格——《不同GPU型号下最优batch_size与mixed_precision组合》。它没出现在大纲里却是实操成败的关键。我带过的3届学生中有2届因忽略此表导致训练效率暴跌50%以上。下面拆解如何用它做决策。5.1 理解课件Slide-5-8参数表的物理意义该表格非经验主义罗列而是基于TF 2.15的tf.keras.mixed_precision.Policy与CUDA流调度机制实测得出。核心逻辑是混合精度FP16能否加速取决于GPU的Tensor Core利用率而利用率由batch_size和模型宽度共同决定。GPU型号推荐batch_sizemixed_precision加速比vs FP32备注RTX 3060 (12G)32mixed_float161.8x超过32触发显存OOMRTX 4090 (24G)128mixed_float162.3x需配合tf.config.optimizer_set_jit(True)Tesla T4 (16G)64mixed_float161.5x必须设置allow_growthTrue为什么RTX 3060不能用128课件Slide-5-8脚注解释“3060的L2缓存仅1.5MBbatch_size128时FP16张量无法全部驻留频繁DMA传输抵消计算增益”。实测数据显示3060上batch_size128时GPU利用率仅42%而batch_size32时达89%。5.2 在代码中动态启用mixed_precision让课件参数表真正生效课件Slide-5-8只给表格未给代码。我们补全# mixed_precision_setup.py —— 课件Slide-5-8的代码实现 import tensorflow as tf def setup_mixed_precision(gpu_model: str): 根据课件Slide-5-8表格自动配置mixed_precision policy tf.keras.mixed_precision.Policy(mixed_float16) tf.keras.mixed_precision.set_global_policy(policy) # 针对T4的特殊配置课件Slide-5-8备注 if gpu_model T4: gpus tf.config.list_physical_devices(GPU) if gpus: tf.config.experimental.set_memory_growth(gpus[0], True) # 针对4090的JIT优化课件Slide-5-8脚注 if gpu_model 4090: tf.config.optimizer_set_jit(True) # 使用示例 setup_mixed_precision(3060) # 自动启用mixed_float16 # 后续model.compile()无需改动TF自动插入Cast ops关键细节tf.keras.mixed_precision.set_global_policy()必须在任何模型定义前调用否则已创建的Variable仍为FP32tf.config.optimizer_set_jit(True)课件Slide-5-8脚注称“4090的CUDA Graph加速需显式开启”实测开启后单epoch耗时从142s降至61s。5.3 验证mixed_precision是否生效三步诊断法课件Slide-5-9仅说“查看TensorBoard的Graph面板”但太模糊。我们用代码精准验证# verify_mixed_precision.py import tensorflow as tf def check_mixed_precision(): # 1. 检查全局policy policy tf.keras.mixed_precision.global_policy() print(fGlobal policy: {policy}) # 应输出 Policy mixed_float16 # 2. 检查模型层dtype课件Slide-5-9要求Dense层应为float16 model tf.keras.Sequential([tf.keras.layers.Dense(10)]) print(fDense layer dtype: {model.layers[0].dtype}) # mixed_float16下应为float16 # 3. 检查训练时实际计算dtype课件Slide-5-9核心验证 tf.function def test_cast(x): return tf.cast(x, tf.float16) * 2.0 x tf.random.normal((1, 10), dtypetf.float32) y test_cast(x) print(fInput dtype: {x.dtype}, Output dtype: {y.dtype}) # 应为float16 check_mixed_precision()为什么这三步缺一不可第一步确认策略已注册第二步验证模型层创建时是否应用policy若在policy设置后创建模型则生效第三步验证计算图中Cast节点是否插入课件Slide-5-9强调“仅policy设置不保证计算加速必须Cast节点存在”。5.4 用课件参数表做教学演示设计一个10分钟课堂实验我常把Slide-5-8表格变成课堂互动实验让学生用nvidia-smi查自己GPU型号查表得推荐batch_size和mixed_precision设置修改model.fit()的batch_size参数运行3个epoch对比logs/training_metrics.csv中loss下降速度与GPU利用率nvidia-smi dmon -s u引导学生发现3060上batch_size64比32慢17%但4090上快23%——这就是课件表格存在的意义它不是配置清单而是硬件-算法协同设计的教学脚手架。这种设计让学生亲手触摸到“为什么深度学习框架要关心GPU架构”远胜于背诵“mixed_precision加速计算”。课件的价值正在于把这种底层耦合转化成可测量、可对比、可争论的教学切口。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

NyaTerm 安全功能完全指南:加密凭据存储、主密码与锁屏防护详解

NyaTerm 安全功能完全指南:加密凭据存储、主密码与锁屏防护详解

【免费下载链接】nyaterm A modern remote terminal workspace 项目地址: https://gitcode.com/gh_mirrors/ny/nyaterm 点击查看 免费下载 🔐 还在担心 SSH 密码明文散落在配置文件里吗?NyaTerm 是一款现代远程终端工作区工具,内…

2026/10/11 15:42:13 阅读更多 →
ST3GG ALLSIGHT隐写分析教程:卡方检验、位平面熵、RS分析的20+种检测手段

ST3GG ALLSIGHT隐写分析教程:卡方检验、位平面熵、RS分析的20+种检测手段

【免费下载链接】ST3GG All-in-one steganography suite 项目地址: https://gitcode.com/gh_mirrors/st/ST3GG 点击查看 免费下载 ST3GG(All-in-one steganography suite)内置的 ALLSIGHT 隐写分析引擎,是一套面向防守方的全套检…

2026/10/11 15:42:13 阅读更多 →
Spring Boot个人物品管理系统开发避坑指南:从数据库设计到答辩PPT

Spring Boot个人物品管理系统开发避坑指南:从数据库设计到答辩PPT

做一个 Spring Boot 个人物品管理系统,你可能会踩哪些坑,论文跟答辩 PPT 又该怎么准备?我这些年陆陆续续帮不少同学盯过这类项目,从需求分析到最终答辩,整套流程走下来,发现真正容易出问题的地方往往不在代…

2026/10/11 15:41:13 阅读更多 →

最新新闻

Linux线程同步指南:从互斥锁、条件变量到生产者消费者模型

Linux线程同步指南:从互斥锁、条件变量到生产者消费者模型

1. 一条计数器的崩溃现场:竞态条件到底怎么回事上一周我在调一个批量图片压缩工具,开了四个线程同时去处理任务队列,结果跑出来的图片里有好几张是花的,还有一次直接段错误。我排查了很久,最后定位到问题根源不在压缩算…

2026/10/11 18:05:40 阅读更多 →
测试环境搭建全攻略:CentOS 7与Ubuntu 20.04双版本一键部署与Docker化实践

测试环境搭建全攻略:CentOS 7与Ubuntu 20.04双版本一键部署与Docker化实践

做测试环境搭建这事儿,看着不难,但坑是真不少。同一个部署文档,在 CentOS 7 上执行得顺顺利利,换到 Ubuntu 20.04 上就报错,或者反过来亦然——包管理器不同、软件源格式不同、防火墙规则不同、服务管理方式也不同。我…

2026/10/11 18:05:40 阅读更多 →
1011星里有多少是「真需求」?我给爆火的技能包泼盆冷水

1011星里有多少是「真需求」?我给爆火的技能包泼盆冷水

1011星里有多少是「真需求」?我给爆火的技能包泼盆冷水 【免费下载链接】golive-skill Take your agent-built product live: hosting, database, domain, email, payments — on your own accounts. Open-source Agent Skill zero-dependency Node CLI: detect →…

2026/10/11 18:04:40 阅读更多 →
零售企业“细节标准体系“的观察样本:一位董事长的胖东来研学笔记

零售企业“细节标准体系“的观察样本:一位董事长的胖东来研学笔记

本文基于上海鼎学甄选教育科技有限公司董事长阿甘在稻百年胖东来研学(许昌)课后采访整理,提取其口述中的观察维度与参照系,供零售与连锁企业参考。1. 观察对象:非销售性投入的密度 受访人:阿甘,…

2026/10/11 18:04:40 阅读更多 →
ComfyUI+AnimateDiff+ControlNet:从零搭建可控动画工作流

ComfyUI+AnimateDiff+ControlNet:从零搭建可控动画工作流

简介:面向ComfyUI生态的动画生成实战资源包,围绕AnimateDiff与ControlNet的OpenposeDepth组合,展示从姿态与深度控制到逐帧动画输出的完整链路,适合熟悉Stable Diffusion基础、希望进阶学习可控动画生成的研究者与创作者&#xff…

2026/10/11 18:04:40 阅读更多 →
OpenCV图像处理到深度学习推理:滤波、特征匹配与轮廓分析实战指南

OpenCV图像处理到深度学习推理:滤波、特征匹配与轮廓分析实战指南

简介:面向计算机视觉开发者和入门学员,这份PDF系统梳理了OpenCV从基础图像处理到深度学习集成的完整知识路径。文档以core、imgproc、objdetect等核心模块为线索,具体介绍图像读取与保存、颜色空间转换、几何变换等基础操作;滤波部…

2026/10/11 18:04:40 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →