VGSLify is a Python toolkit designed for rapid prototyping and seamless conversion between TensorFlow models and the Variable-size Graph Specification Language (VGSL). Drawing inspiration from Tesseract's VGSL specs, VGSLify introduces enhancements and provides a streamlined approach to define, train, and interpret deep learning models using VGSL.
Project description
VGSLify: Variable-size Graph Specification for TensorFlow & PyTorch
VGSLify simplifies defining, training, and interpreting deep learning models using the Variable-size Graph Specification Language (VGSL). Inspired by Tesseract's VGSL specs, VGSLify enhances and streamlines the process for both TensorFlow and PyTorch.
Table of Contents
- Installation
- How VGSL Works
- Quick Start
- Additional Documentation
- Contributing
- License
- Acknowledgements
Installation
pip install vgslify
Install your chosen backend:
# For TensorFlow
pip install tensorflow
# For PyTorch
pip install torch
Verify installation:
python -c "import vgslify; print(vgslify.__version__)"
How VGSL Works
VGSL uses concise strings to define model architectures. For example:
None,None,64,1 Cr3,3,32 Mp2,2 Cr3,3,64 Mp2,2 Rc3 Fr64 D20 Lrs128 D20 Lrs64 D20 Fs92
Each part represents a layer: input, convolution, pooling, reshaping, fully connected, LSTM, and output. VGSL allows specifying activation functions for customization.
Quick Start
Generating a Model with VGSLify
from vgslify.generator import VGSLModelGenerator
# Define the VGSL specification
vgsl_spec = "None,None,64,1 Cr3,3,32 Mp2,2 Fs92"
# Choose backend: "tensorflow", "torch", or "auto" (defaults to whichever is available)
vgsl_gn = VGSLModelGenerator(backend="tensorflow")
model = vgsl_gn.generate_model(vgsl_spec, model_name="MyModel")
model.summary()
vgsl_gn = VGSLModelGenerator(backend="torch") # Switch to PyTorch
model = vgsl_gn.generate_model(vgsl_spec, model_name="MyTorchModel")
print(model)
Creating Individual Layers with VGSLify
from vgslify.generator import VGSLModelGenerator
vgsl_gn = VGSLModelGenerator(backend="tensorflow")
conv2d_layer = vgsl_gn.construct_layer("Cr3,3,64")
# Integrate into an existing model:
# model = tf.keras.Sequential()
# model.add(conv2d_layer) # ...
# Example with generate_history:
history = vgsl_gn.generate_history("None,None,64,1 Cr3,3,32 Mp2,2 Fs92")
for layer in history:
print(layer)
Converting Models to VGSL
from vgslify.utils import model_to_spec
import tensorflow as tf
# Or import torch.nn as nn
# TensorFlow example:
model = tf.keras.models.load_model("path_to_your_model.keras") # If loading from file
# PyTorch example:
# model = MyPyTorchModel() # Assuming MyPyTorchModel is defined elsewhere
vgsl_spec_string = model_to_spec(model)
print(vgsl_spec_string)
Note: Flatten/Reshape layers might require manual input shape adjustment in the generated VGSL.
Additional Documentation
See the VGSL Documentation for more details on supported layers and their specifications.
Contributing
Contributions are welcome! Fork the repository, set up your environment, make changes, and submit a pull request. Create issues for bugs or suggestions.
License
MIT License. See LICENSE file.
Acknowledgements
Thanks to the creators and contributors of the original VGSL specification.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file vgslify-0.13.2.tar.gz
.
File metadata
- Download URL: vgslify-0.13.2.tar.gz
- Upload date:
- Size: 23.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d927e42969856e8739dc70906887985e2303d6480e7823f6dc7682146374f69a |
|
MD5 | a01860c27e7325391b55d6b6dfb9430c |
|
BLAKE2b-256 | e53f58e42e3973fc5a9adaa736c14f57042e31b7c8f817504bb60d6fa42fbc89 |
File details
Details for the file vgslify-0.13.2-py3-none-any.whl
.
File metadata
- Download URL: vgslify-0.13.2-py3-none-any.whl
- Upload date:
- Size: 29.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1062fb36ab3ff8579286334caf2e22428f2ed05f3f35a1689ddb8168778c2bf0 |
|
MD5 | 5a32fdcc548ced14de6a2c11edc72784 |
|
BLAKE2b-256 | 1890e6fa1584cfe33f97a64fb2fcd87a5fbf222b6f7071d9d163f28ea9424f63 |