Model Card for NNN (Not a Neural Network)
This modelcard aims to be a base template for new models. It has been generated using this raw template. Just a simple exercise I did to learn how to use the PyTorch and TorchHD libraries
Model Details
Model Description
This MNIST model was made using 2 libraries: PyTorch and TorchHD. The HD in TorchHD stands for Hyperdimensional Computing, which means TorchHD is a library that allows you to do hyperdimensional computing in PyTorch. Hyperdimensional Computing (Or HDC) models are much less accurate than neural networks, that's why this model's accuracy is ~82%
- Developed by: Comrade Cat (me)
- Shared by: Comrade Cat (me)
- Model type: Image Classification
- Language(s) (NLP): None
- License: Apache 2.0
- Finetuned from model: None. This is a pretrained model.
Model Sources [optional]
- Repository: Here
- Paper: None
- Demo: Not available yet.
Uses
This model is intended to be used as an experiment to compare TorchHD models to PyTorch models.
Direct Use
This model is intended to be used for recognizing digits. Please be aware that it has a lower accuracy than a normal PyTorch model.
Downstream Use
This model could be fine-tuned to improve its accuracy, as it is surprisingly low.
Out-of-Scope Use
Please do not misuse the model. This model will not work for tasks other than handwritten digit recognition.
Bias, Risks, and Limitations
This model is too simple and inaccurate to be biased against a social group. The technical limitations are its inaccuracy.
Recommendations
Users (both direct and downstream) should be aware of the risks, biases and limitations of the model. Be aware of how inaccurate this model is!!!
How to Get Started with the Model
Download both the model and the encoder. Make sure to download their weights too if you want to fine-tune them! After that you can load them in PyTorch.
import torch
# Load the base model and weights
model = torch.load("mnist.pt")
model.load_state_dict(torch.load("mnist_weights.pt"))
# Load the encoder and its weights
encoder = torch.load("mnist_encoder.pt")
encoder.load_state_dict("mnist_encoder_weights.pt")
# Load an image of a handwritten digit.
# sample_image = (load your image here)
# Encode the loaded image
encoded_image = encode(sample_image)
outputs = model(encoded_image)
print(outputs)
Training Details
Training Data
[Link to MNIST will be added soon]
Training Procedure
Preprocessing
[More Information Needed]
Training Hyperparameters
- Training regime: [I don't know yet]
- DIMENSIONS: 11000
- IMAGE SIZE: 28
- NUMBER OF LEVELS: = 1000
- BATCH SIZE: 2
Speeds, Sizes, Times
The training of this model took 1 hour, because I have a potato PC
Evaluation
Testing Data, Factors & Metrics
Testing Data
[Link to MNIST will be added soon]
Factors
[More Information Needed]
Metrics
[Accuracy: 82.850%]
Results
[Low accuracy]
Summary
This model is simply too inaccurate for its own good. However, I (Comrade Cat), will try to retrain the model until it has better accuracy.
Model Card Contact
[More Information Needed]