界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
设计与创意 · SKILL.md

post-training-tools

post-training-tools

【设计与创意】Use after DeepDanbooru training to convert a saved Keras model to TensorFlow Lite or generate experimental Grad-CAM visualizations, with explicit artifact, dependency, and CPU-backend checks.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: post-training-tools description: "Use after DeepDanbooru training to convert a saved Keras model to TensorFlow Lite or generate experimental Grad-CAM visualizations, with explicit artifact, dependency, and CPU-backend checks." disable-model-invocation: true metadata: disco-role: operating license: MIT

Post-training tools

Use this sub-skill after a DeepDanbooru project has a loadable trained Keras model. It routes two post-training workflows:

  • TFLite conversion: emit and inspect a non-empty .tflite artifact.
  • Grad-CAM: generate experimental, qualitative maps for tags selected by a prediction threshold.

Do not use this skill to train, repair a dataset, or judge model quality. Route ordinary predictions, thresholds, and tag alignment to Inference and evaluation. Route missing or stale models and retraining to Model training. For exact details, read the focused references before running a command.

Choose the route

GoalEntry pointRead first
Convert a saved Keras modeldeepdanbooru conv2tfliteTFLite conversion
Visualize input gradientsdeepdanbooru grad-camGrad-CAM workflow
Check paths without loading a modelpost_training_preflight.pyTroubleshooting
Verify conversion in isolationtflite_conversion_smoke.pyTFLite conversion

Shared preflight

  1. Use the verified CPU TensorFlow backend first. GPU may be faster, but GPU support and speed are optional and unverified; a GPU option is not proof of GPU readiness.
  2. Keep the model/project and output paths explicit. For TFLite output, --allow-existing-output only permits replacing an existing regular file; an existing directory at --save-path is always rejected. Use a disposable output directory for Grad-CAM because files can be overwritten.
  3. A project-based operation expects project.json, tags.txt, and the model selected by project.json. The project loader searches model-{model}.keras, then model-{model}.h5.
  4. Check that the model has an NHWC image input and that the tag count matches the output width before interpreting results. DeepDanbooru preprocessing resizes with aspect-ratio preservation, edge-pads, and normalizes to [0,1].
  5. Run the bundled preflight before an expensive conversion or visualization. It performs no downloads, network access, credential use, or model loading.

TFLite decision rules

The CLI requires --save-path, a project or direct model path, and at least one optimization method. The exact flags are --project-path, --model-path, --save-path, --optimize-default, --optimize-experimental-sparsity, and --verbose; do not substitute similarly named flags. A direct --model-path takes precedence over a project. The converter API and artifact checks are in references/tflite-conversion.md.

After conversion, require test -s OUTPUT.tflite; then, when possible, load it with a CPU TFLite interpreter and call allocate_tensors(). A non-empty file alone does not prove compatible preprocessing, tag metadata, delegates, or model quality. If sparsity or a layer is incompatible, retry without sparsity before changing the original model.

Grad-CAM decision rules

grad-cam is explicitly experimental. It requires a project and target path, accepts an optional output directory (default .), and uses --threshold default 0.5; selection is inclusive (score >= threshold). It creates an input image and per-selected-tag maps under a folder named for each input basename. No selected tags means no result maps, not necessarily a failed inference. Read the output contract and limitations in references/grad-cam-workflow.md.

Failure handling and handoff

Use references/troubleshooting.md for missing model/save/optimization inputs, incompatible conversion operators, absent SciPy or Pillow imports, malformed projects, and threshold cases with no maps. Do not import the old deepdanbooru.gradcam module as a generic helper: its source-level experimental test runs at import time. After any artifact or map run, compare predictions and prerequisites through Inference and evaluation; if the model is missing, use Model training.

我的收藏