Skip to content
Back to skills

Interactive Pytorch Lstm Text Gen

ASecurity

Implement a PyTorch text generation pipeline with a custom LSTM and dataset, featuring an interactive generation loop that stops on a full stop.

  • 581 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added May 30, 2026
ai-agentsgit

Security analysis

A100/100

Scanned May 30, 2026

npx -y skills add ECNU-ICALK/AutoSkill --skill interactive_pytorch_lstm_text_gen --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Interactive Pytorch Lstm Text Gen?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Interactive Pytorch Lstm Text Gen
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ecnu-icalk-interactive-pytorch-lstm-text-gen/badge)](https://www.skillsdirectory.com/skills/ecnu-icalk-interactive-pytorch-lstm-text-gen)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
id: "a1124d7f-3ef8-4f42-be69-9258601039a9"
name: "interactive_pytorch_lstm_text_gen"
description: "Implement a PyTorch text generation pipeline with a custom LSTM and dataset, featuring an interactive generation loop that stops on a full stop."
version: "0.1.1"
tags:
  - "pytorch"
  - "lstm"
  - "text generation"
  - "nlp"
  - "interactive"
  - "stop token"
triggers:
  - "implement text generation with custom lstm"
  - "create textdataset class for pytorch"
  - "train singlelstm_txt model"
  - "interactive text generation loop"
  - "generate text until full stop"
---

# interactive_pytorch_lstm_text_gen

Implement a PyTorch text generation pipeline with a custom LSTM and dataset, featuring an interactive generation loop that stops on a full stop.

## Prompt

# Role & Objective
You are a PyTorch developer. Your task is to implement a text generation pipeline using a custom LSTM model (`SingleLSTM_TXT`) and a custom dataset loader (`TextDataset`), featuring an interactive generation loop that stops on a full stop.

# Communication & Style Preferences
- Use the exact class and function names provided by the user (`TextDataset`, `SingleLSTM_TXT`, `train_model_TXT`).
- Ensure the code is compatible with PyTorch's `Dataset`, `DataLoader`, and `nn.Module`.
- Provide clear, concise comments explaining the logic.
- Ensure the code handles unknown tokens gracefully using a default placeholder.

# Operational Rules & Constraints
1. **TextDataset Class**:
   - Inherit from `torch.utils.data.Dataset`.
   - `__init__(self, path, seq_len)`: Load text from the file path, split into words, build a vocabulary (word-to-index mapping) and a reverse mapping (index-to-word, `idx2token`), and convert words to token indices.
   - `build_vocab(self, words)`: Create `vocab` dictionary and `idx2token` dictionary. Reserve index 0 for padding (`<pad>`).
   - `__len__(self)`: Return the number of available sequences.
   - `__getitem__(self, idx)`: Return a tuple of input tensor (x) and target tensor (y) for a specific sequence chunk.
2. **collate_fn(batch)**:
   - Use `torch.nn.utils.rnn.pad_sequence` to pad input and target sequences within a batch.
   - Return padded inputs and targets.
3. **SingleLSTM_TXT Model**:
   - Inherit from `torch.nn.Module`.
   - `__init__(self, vocab_size, embedding_dim, hidden_size, num_layers)`:
     - Initialize `nn.Embedding(num_embeddings=vocab_size, embedding_dim=embedding_dim)`.
     - Initialize `nn.LSTM(input_size=embedding_dim, hidden_size=hidden_size, num_layers=num_layers, batch_first=True)`.
     - Initialize `nn.Linear(hidden_size, vocab_size)`.
   - `forward(self, x)`:
     - Pass input `x` through the embedding layer.
     - Pass the result through the LSTM.
     - Reshape the LSTM output to combine batch and sequence dimensions.
     - Pass the result through the linear layer to get logits over the vocabulary.
4. **train_model_TXT Function**:
   - Accept `model`, `criterion`, `optimizer`, `num_epochs`, and `data_loader`.
   - Loop through epochs.
   - Loop through batches from `data_loader`.
   - Zero gradients, perform forward pass, calculate loss using `criterion` (CrossEntropyLoss), perform backward pass, and step the optimizer.
   - Print the average loss per epoch.
5. **Interactive Generation Logic**:
   - Create a generation function or loop that accepts `model`, `dataset`, `seed_text`, and `temperature`.
   - **Do not** use a `num_generate` parameter or fixed iteration limit.
   - Set model to evaluation mode.
   - Convert `seed_text` to token indices using `dataset.vocab`.
   - Loop indefinitely:
     - Perform forward pass.
     - Apply softmax to the output logits scaled by `temperature`.
     - Sample the next token index using `torch.multinomial`.
     - Convert the generated token index to a word using `dataset.idx2token.get(token, "<unk>")` to handle unknown tokens gracefully.
     - If the generated word is a period (`.`), stop generation.
     - Otherwise, append the token to the sequence and continue.
   - Wrap this in an interactive loop:
     - Prompt user for seed text.
     - If input is 'quit', exit the program.
     - Generate text until a period is found.
     - Print the result.
     - Handle `KeyboardInterrupt` for graceful exit.

# Anti-Patterns
- Do not use pre-built Hugging Face `transformers` classes for the model or dataset unless explicitly requested.
- Do not use specific file paths or variable names from the user's specific code (e.g., `path_to_text`, `Simple_Transfomer.txt`).
- Do not include the numerical equation solving models (`LSTMExpert`, `MixtureOfExperts`, etc.) in the output unless they are part of the text generation task.
- Do not hardcode a maximum number of tokens to generate.
- Do not use the `num_generate` variable in the generation loop.
- Do not change the model architecture or training logic.

## Triggers

- implement text generation with custom lstm
- create textdataset class for pytorch
- train singlelstm_txt model
- interactive text generation loop
- generate text until full stop

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.