计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
sampling【效率与协作】Operate BigGAN-PyTorch sampling from compatible checkpoints, including EMA and batch-normalization statistics, image sheets, NPZ export, truncation curves, and repository-specific Inception evaluation.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Use this skill when the task is to load a trained BigGAN-PyTorch generator,
produce random or conditional/interpolated images, export a TensorFlow-compatible
NPZ, or compare the repository's PyTorch Inception metrics. Work from the
repository root so that sample.py, utils.py, inception_utils.py, and the
model module can be imported.
This is a CUDA sampling path: sample.py constructs G with .cuda(), uses
CUDA distributions for z and y, and the metric wrapper also moves Inception
to CUDA. Confirm the CUDA, PyTorch, torchvision, and checkpoint environment
before launching a large run. Read all three bundled references for exact flag
semantics and recovery procedures.
weights_root/<experiment_name>/ directory and the suffix to load. An empty
suffix means G.pth and state_dict.pth; best0 and copy0 mean
G_best0.pth/state_dict_best0.pth and
G_copy0.pth/state_dict_copy0.pth, respectively. A usable normal-G run
needs the generator and state dict; a --use_ema run additionally needs
G_ema[_suffix].pth. --load_weights selects a file suffix, not a
directory.--experiment_name NAME --load_weights SUFFIX --config_from_name when the
checkpoint has a saved state dict. The bootstrap state-dict load happens
before update_config_roots, so if the checkpoint is outside the default
weights/, pass its actual --weights_root explicitly as well as
--base_root if desired. Without --config_from_name, supply the training
architecture flags yourself; strict=False in sample.py is not a remedy
for incompatible tensor shapes.--use_ema to load
G[_suffix].pth. Use --use_ema only when the checkpoint was saved with an
EMA generator and the matching G_ema[_suffix].pth exists. --ema describes
the training/configuration and contributes to auto-generated experiment
names; --use_ema controls which generator state is loaded for evaluation.--G_eval_mode calls G.eval() and uses running BatchNorm estimates. With
the custom myBN implementation, --accumulate_stats runs
--num_standing_accumulations random forward passes in training mode and
then switches to eval. Keep G_eval_mode, mybn, accumulation count, EMA
choice, and z_var fixed for fair comparisons. The BigGAN recipe uses
--mybn --accumulate_stats --num_standing_accumulations 32 when standing
statistics are wanted; the provided main sampling recipe instead uses
--use_ema --G_eval_mode.--z_var controls the var field
of the custom normal Distribution. In this code that field is passed as
the second argument to Tensor.normal_, i.e. as the normal scale despite
the historical “variance” name. G_batch_size is set to
max(--G_batch_size, --batch_size), so lower both flags when reducing GPU
memory. --seed seeds PyTorch CUDA and NumPy RNGs but does not make every
multi-GPU or cuDNN operation deterministic.--sample_random writes a normalized random_samples.jpg;
--sample_sheets writes class-conditional sheets;
--sample_interps writes Z/Y interpolation sheets;
--sample_npz --sample_num_npz N writes samples.npz with x uint8 CHW
images and y integer labels; and metric flags compute repository-specific
scores. Create the samples root first: the script does not call
utils.prepare_root, and NPZ/random output assumes the experiment directory
already exists. See references/workflows.md for exact layout and commands.<base-dataset>_inception_moments.npz. Its IS/FID are explicitly unofficial
and not numerically interchangeable with the legacy TensorFlow metric. To
obtain the TensorFlow-style IS, first produce the NPZ and then run the
repository's TensorFlow 1.3-or-earlier evaluator. Record the implementation,
weights (normal/EMA), mode, z_var, image count, and moments used with every
score.For a checkpoint with a saved config, use a command of this form (replace the paths and name; do not invent a name from a changed sampling batch size):
mkdir -p /path/to/samples /path/to/samples/EXPERIMENT
python sample.py \
--experiment_name EXPERIMENT --weights_root /path/to/weights \
--load_weights best0 --config_from_name \
--batch_size 32 --G_batch_size 32 --seed 0 \
--use_ema --G_eval_mode --sample_random
Add only the required output flags. A truncation sweep, for example, adds
--sample_inception_metrics --sample_trunc_curves 0.05_0.05_1.0; this is a
metric run, not a cheap image smoke test. Do not start with 50,000 images or
multiple sheets when first validating a checkpoint.
--weights_root, --experiment_name, or --load_weights selection. A
missing state_dict[_suffix].pth prevents --config_from_name; recover the
saved config or provide every architecture argument explicitly.--use_ema only if a normal-G evaluation is
acceptable; otherwise locate a checkpoint containing the matching
G_ema[_suffix].pth. Never label a normal-G result as an EMA result.inception_utils.py will
search, or restrict the run to checkpoint/image loading after applying the
lazy-metrics source fix described in references/troubleshooting.md.
--no_fid is not a missing-moments workaround because moments are loaded
before the metric flags are consulted.--config_from_name, and keep only documented runtime overrides. A shape
mismatch means the checkpoint and model are genuinely incompatible; do not
paper over it with strict=False.--batch_size and --G_batch_size, disable
--parallel only if it reduces overhead on the available topology, and
reduce image counts or run outputs separately. NPZ sampling accumulates all
generated arrays in host memory before writing, so large --sample_num_npz
values can also exhaust RAM.sample.py --help crashing with ValueError: unsupported format character '#', the --logstyle help text in utils.py contains literal
%#.#f/%#.#e strings. Escape the percent signs as %%#.#f and
%%#.#e (or remove the formatting examples), then retry help. Until that
source-only fix is made, use known flags directly rather than treating the
help crash as a checkpoint failure.For the complete flag contract, file names, metric caveats, multi-GPU behavior,
and failure matrix, read references/api-reference.md,
references/workflows.md, and references/troubleshooting.md.