vera-ai-image-generating
Server-side extension that completes the full analysis pipeline for image classification after vera-ai-image-reviewing has run. Adds ResNet50, EfficientNet-B0, VGG16, DenseNet121 CNN classifiers with
SKILL.mdvera-ai-research-skillset/vera-ai-image-generating/SKILL.md
GitHubImage Classification --- Full Analysis & Manuscript Generation
Table of Contents
- Scope Boundary
- Workflow
- Additional Inputs
- Output Structure
- Key References (read before generation)
- Reporting Standards
- Method Status
- Configuration Defaults
- Why These Defaults
- GPU Availability
- Minimal Smoke Test
- Cross-Skill Interface
Open-source skill. Read reference/specs/output-variation-protocol.md
before every generation --- apply all variation layers for natural, diverse output.
Scope Boundary
Use this skill when:
vera-ai-image-reviewinghas already produced the baseline artifacts.- The task is supervised image classification and the user wants transfer learning, ViT, ensembles, and interpretability.
Do not use this skill when:
- The task is detection, segmentation, captioning, retrieval, generation, or video.
- The user expects every contemporary vision backbone; this open-source build only guarantees the methods listed below.
- Hardware limits make anything beyond feature-extraction smoke tests unrealistic.
Workflow
Continues from where vera-ai-image-reviewing stopped (PART 0-2 done).
| Step | Responsibility | Executor | Document | Input | Output |
|---|---|---|---|---|---|
| Additional CNN models | Run Additional Models | Main Agent | workflow/step04-run-additional-models.md |
Prior step output | PART 3 code + prose |
| Subgroup | Analyze Subgroups | Main Agent | workflow/step05-analyze-subgroups.md |
Prior step output | PART 4 code + prose |
| Advanced models | Fit Advanced Models | Main Agent | workflow/step06-fit-advanced-models.md |
Prior step output | PART 5 code + prose |
| Comparison | Compare Models | Main Agent | workflow/step07-compare-models.md |
Prior step output | PART 6 code + prose |
| Manuscript | Generate Manuscript | Main Agent | workflow/step08-generate-manuscript.md |
Prior step output | methods.md + results.md |
Additional Inputs
Collect if not already provided:
- Target discipline (for reporting conventions)
- Target journal or style (CVPR, ECCV, MICCAI, NeurIPS, etc.)
- Research question / hypothesis
- Subgroup variable or image property for stratification
- Image dimensions (HxWxC) and any DICOM metadata if medical imaging
Output Structure
output/
├── methods.md
├── results.md
├── tables/ <- Markdown + CSV per table
├── figures/ <- PNGs, 300 DPI
├── references.bib
└── code.py <- Style-varied
Key References (read before generation)
| File | Purpose |
|---|---|
reference/specs/output-variation-protocol.md |
Output quality variation layers |
reference/specs/code-style-variation.md |
Seven-dimension code style diversity |
reference/patterns/sentence-bank.md |
4-6 phrasings per result type |
reference/rules/reporting-standards.md |
Hard rules for CNN/ViT reporting |
Reporting Standards
Same as vera-ai-image-reviewing, plus:
- All models: report F1 (weighted) and AUC (macro) with bootstrapped 95% CIs
- Transfer learning: report backbone name, pre-trained weights, frozen vs fine-tuned layers
- Training: report epochs, best epoch, learning rate, batch size, data augmentation pipeline
- ViT: report pre-trained model name, patch size, whether backbone was frozen
- Image input: report HxWxC dimensions, normalization (mean/std), parameter counts, FLOPs
- Feature attribution: unified 0-100 scale via GradCAM (CNNs) and attention maps (ViT)
- Model comparison: frame as convergent findings, not horse race
- Small dataset CNN: frame as "exploratory"; never claim generalizability
- Medical imaging: report DICOM preprocessing, windowing, DenseNet rationale
Method Status
| Status | Methods |
|---|---|
| Implemented in this skill | ResNet50, EfficientNet-B0, VGG16, DenseNet121, ViT-B/16, soft voting, stacking, GradCAM, ViT attention maps |
| Legacy-only support | VGG16 is kept for replication and sanity-check comparisons, not as a recommended modern default |
| Planned but not yet shipped | ConvNeXt-Tiny is not part of the open-source engine yet |
Configuration Defaults
Pipeline constants live in config/default.json. Read it before generation. Key knobs in addition to the testing-skill config:
transfer.{backbones, frozen_below_N, fine_tune_above_N}— N-dependent feature-extraction vs fine-tuning decisionbackbones.*— ResNet50, EfficientNet-B0, VGG16, DenseNet121, ViT hyperparameterstraining.{epochs, batch_size, learning_rate, optimizer, scheduler}— defaults per backboneaugmentation.{train_pipeline, test_pipeline}— augmentation recipegpu.{required, fallback_to_cpu}— CPU fallback behavior (see GPU Availability below)interpretability.{gradcam_layer, vit_attention}— explanation method per model class
To override: create config/local.json.
Why These Defaults
- The transfer-learning split between feature extraction and full fine-tuning exists to keep small-data runs from overclaiming what the labels can support.
- ViT is intentionally narrowed to ViT-B/16 because that is the variant implemented in
src/dl_vit.py; the skill should not imply broader transformer coverage than the code actually ships. - Small-dataset CNN results stay marked "exploratory" because backbone capacity can easily outrun the evidence available in limited image collections.
GPU Availability
Check at workflow step 06 (advanced models) start. Implementation pattern:
import torch
GPU_AVAILABLE = torch.cuda.is_available()
if not GPU_AVAILABLE:
print("WARNING: CUDA not available. Fine-tuning large backbones on CPU is impractical.")
print("Falling back to ResNet18/ResNet50 feature-extraction mode only (frozen backbones + LogReg head).")
TRAINING_MODE = "feature_extraction_only"
else:
TRAINING_MODE = "full"
Always log the decision to RESEARCH_LOG.md so the manuscript methods section can note training environment.
Minimal Smoke Test
- Smoke-test prompt: "Continue from
vera-ai-image-reviewingon a 2-4 class CIFAR-10 orImageFoldersubset. Produce the transfer-learning, advanced-model, and manuscript-ready artifacts." - CPU pass condition: the skill logs that large-model fine-tuning is impractical and falls back to feature-extraction mode. GPU-heavy steps may be reduced, but the artifact contract must still be satisfied.
- Expected artifacts:
methods.md,results.md,tables/,figures/,references.bib, and one consolidatedcode.py.
Cross-Skill Interface
Method Unit Contract:
├── code_python -> .py script (style-varied)
├── methods_md -> methods.md (varied structure)
├── results_md -> results.md (varied phrasing)
├── tables/ -> Markdown + CSV
├── figures/ -> PNGs 300 DPI (varied layout)
├── references_bib -> .bib with cited references
└── comparison -> cross-method narrative (in results.md)