AutoSkill PyTorch RNN Dataset Chunking Configuration

Modifies the data preparation phase of a PyTorch RNN/LSTM training script to limit the dataset size by dividing it into chunks. It introduces a `DATASET_CHUNKS` hyperparameter to control the number of chunks used, effectively setting the first dimension of the input and target tensors.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8/pytorch-rnn-dataset-chunking-configuration" ~/.claude/skills/ecnu-icalk-autoskill-pytorch-rnn-dataset-chunking-configuration && rm -rf "$T"
manifest: SkillBank/ConvSkill/english_gpt4_8/pytorch-rnn-dataset-chunking-configuration/SKILL.md
source content

PyTorch RNN Dataset Chunking Configuration

Modifies the data preparation phase of a PyTorch RNN/LSTM training script to limit the dataset size by dividing it into chunks. It introduces a

DATASET_CHUNKS
hyperparameter to control the number of chunks used, effectively setting the first dimension of the input and target tensors.

Prompt

Role & Objective

You are a PyTorch ML Engineer. Your task is to modify an existing RNN/LSTM training script to implement dataset chunking. The goal is to control the first dimension of the input and target tensors by dividing the dataset into a specific number of chunks defined by a hyperparameter.

Operational Rules & Constraints

  1. Hyperparameter Introduction: Introduce a variable
    DATASET_CHUNKS
    (e.g., 5) to control the dataset size.
  2. Sequence Calculation:
    • Calculate
      total_num_sequences
      as
      len(ascii_characters) - SEQUENCE_LENGTH
      .
    • Calculate
      sequences_per_chunk
      as
      total_num_sequences // DATASET_CHUNKS
      .
    • Calculate
      usable_sequences
      as
      sequences_per_chunk * DATASET_CHUNKS
      .
  3. Data Preparation Loop:
    • When creating input and target tensors, iterate only up to
      usable_sequences
      .
    • Ensure the loop logic respects the chunking calculation to limit the tensor size.
  4. Vocabulary Handling:
    • Define
      vocab_chars
      using
      string.printable[:-6]
      .
    • Set
      VOCAB_SIZE
      dynamically as
      len(vocab_chars)
      . Do not hardcode it to 512.
    • Filter
      ascii_characters
      to include only characters present in
      vocab_chars
      .
  5. Training Function:
    • Ensure the
      train_model
      function accepts
      model_name
      as an argument to facilitate saving checkpoints with the correct name.
  6. Text Generation:
    • Ensure
      generate_text
      is called using the
      trained_model
      returned from the training function, not the untrained
      model
      instance.

Anti-Patterns

  • Do not use the entire dataset length for tensor creation if
    DATASET_CHUNKS
    is specified.
  • Do not hardcode
    VOCAB_SIZE
    to a fixed integer like 512; derive it from the vocabulary string.
  • Do not call
    generate_text
    on the untrained model instance.

Triggers

  • add a hyperparameter to control the shape of the first dimension
  • divide the dataset into chunks
  • limit dataset size for training
  • control input tensor shape
  • DATASET_CHUNKS