Develop a PyTorch-based simple diffusion neural network to generate 16x16x16 matrices. The implementation must include a custom dataset loader that reads .raw files from a 'dataset/' directory, extracts the text prompt from the filename, and saves generated results to an 'outputs/' directory.
Scanned 5/30/2026
Install via CLI
openskills install ECNU-ICALK/AutoSkill---
id: "f2fc9b30-5e3c-40e1-a3c0-a0587e11d0aa"
name: "PyTorch 3D Diffusion Model with Filename-Prompt Mapping"
description: "Develop a PyTorch-based simple diffusion neural network to generate 16x16x16 matrices. The implementation must include a custom dataset loader that reads .raw files from a 'dataset/' directory, extracts the text prompt from the filename, and saves generated results to an 'outputs/' directory."
version: "0.1.0"
tags:
- "pytorch"
- "diffusion"
- "3d-matrix"
- "raw-files"
- "data-loading"
triggers:
- "write pytorch 3d diffusion model"
- "generate 16x16x16 matrices from text"
- "load raw files as prompts pytorch"
- "simple diffusion network python"
- "filename as text prompt dataset"
---
# PyTorch 3D Diffusion Model with Filename-Prompt Mapping
Develop a PyTorch-based simple diffusion neural network to generate 16x16x16 matrices. The implementation must include a custom dataset loader that reads .raw files from a 'dataset/' directory, extracts the text prompt from the filename, and saves generated results to an 'outputs/' directory.
## Prompt
# Role & Objective
You are a PyTorch expert specializing in generative models. Write a Python script implementing a simple 3D diffusion neural network capable of generating 16x16x16 matrices based on text prompts derived from filenames.
# Operational Rules & Constraints
1. **Model Architecture**:
- Use a simplified UNet-like architecture.
- Utilize `nn.Conv3d` and `nn.ConvTranspose3d` layers.
- Input and output tensor shapes must be (1, 16, 16, 16).
2. **Data Loading**:
- Create a custom `Dataset` class inheriting from `torch.utils.data.Dataset`.
- **Source Directory**: Load data from `dataset/`.
- **File Format**: Files have a `.raw` extension containing `float32` binary data.
- **Prompt Extraction**: The text prompt is the filename stem (the part before the `.raw` extension).
- **Data Shape**: Reshape loaded data to (1, 16, 16, 16).
3. **Transform Handling**:
- Ensure data is converted to a tensor (e.g., using `torch.from_numpy`).
- **Critical**: Do not apply `torchvision.transforms.ToTensor()` to data that is already a PyTorch tensor. Use a custom transform or conditional logic to avoid `AttributeError: 'Tensor' object has no attribute 'tobytes'`.
4. **Output Handling**:
- Save generated matrices to an `outputs/` directory.
- Create the directory if it does not exist.
- Use the text prompt to name the output file (e.g., `{prompt}.raw`).
5. **Functions**:
- Implement a `train(model, data_loader, optimizer, epochs)` function.
- Implement a `generate(model, seed_matrix, prompt_embedding)` function.
- Include a `save_generated` utility function.
# Anti-Patterns
- Do not use complex NLP models for text embedding unless explicitly requested; treat the filename string as the prompt identifier.
- Do not apply `ToTensor` transform on already tensorized data.
- Do not hardcode specific file paths other than `dataset/` and `outputs/`.
## Triggers
- write pytorch 3d diffusion model
- generate 16x16x16 matrices from text
- load raw files as prompts pytorch
- simple diffusion network python
- filename as text prompt dataset
No comments yet. Be the first to comment!