Introduction
This is a small tool that uses the PyTorch framework, providing assistance in completing classification task using CNN.
Features: train model, print training process, save training files, plot figures, etc.
Install
pip install fau-tools
The helpers in fau_tools.torch_tools that read and plot a training record need two extra packages:
pip install "fau-tools[plot]"
Usage
import
The following code is recommended.
import fau_tools
quick start
The tutor will use a simple example to help you get started quickly!
The following example uses Fau-tools to train a model in MNIST hand-written digits dataset.
import torch
import torch.nn as nn
import torch.utils.data as tdata
import torchvision
import fau_tools
# A simple CNN network
class CNN(nn.Module):
def __init__(self):
super().__init__()
self.conv = nn.Sequential(
nn.Conv2d(1, 16, 3, 1, 1), # -> (16, 28, 28)
nn.ReLU(),
nn.MaxPool2d(2), # -> (16, 14, 14)
nn.Conv2d(16, 32, 3, 1, 1), # -> (32, 14, 14)
nn.ReLU(),
nn.MaxPool2d(2) # -> (32, 7, 7)
)
self.output = nn.Linear(32 * 7 * 7, 10)
def forward(self, x):
x = self.conv(x)
x = x.flatten(1)
return self.output(x)
# Hyper Parameters definition
total_epoch = 10
lr = 1E-2
batch_size = 1024
# Load dataset
train_data = torchvision.datasets.MNIST('datasets', True, torchvision.transforms.ToTensor(), download=True)
test_data = torchvision.datasets.MNIST('datasets', False, torchvision.transforms.ToTensor())
train_data.data = train_data.data[:6000] # mini data
test_data.data = test_data.data[:2000] # mini data
# Get data loader
train_loader = tdata.DataLoader(train_data, batch_size, True)
test_loader = tdata.DataLoader(test_data, batch_size)
# Initialize model, optimizer and loss function
model = CNN()
loss_function = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr)
# Train!
fau_tools.TaskRunner(model, train_loader, test_loader, loss_function, optimizer, total_epoch, exp_path="MNIST").train()
Now, we can run the python script, and the training process will be visualized as the following picture.
Three files named
best.pth,scalars.csvandexp_info.txtwill be saved.The first file is the weight of trained model.
The second file records scalar value changes in the training process.
The third file saves information about the experiment.
The above is the primary usage of this tool, but there are also some other snazzy features, which will be introduced later. [TODO]
END
Hope you could like it! And welcome issues and pull requests.
Metadata
Release files for fau-tools 2.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| fau_tools-2.1.1.tar.gz | 334.4 kB | Without provenance | Details for fau_tools-2.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| fau_tools-2.1.1-py3-none-any.whl | Python 3 | none | any | Details for fau_tools-2.1.1-py3-none-any.whl |
Total release size: 353.8 kB
Release files / fau_tools-2.1.1.tar.gz
| Download URL | fau_tools-2.1.1.tar.gz |
|---|---|
| Size | 334.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
71459d275500292a1e3d2d5a2d6fb028d8c3e10796dd3dc8214c7f3cdd8c5981
|
|
BLAKE2b-256 checksum How to use checksums |
2f5c7b53713356de2374f37c7f3d4a3e3c41125e70ec18013f5373566bb70e84
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.11 {"installer":{"name":"uv","version":"0.12.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / fau_tools-2.1.1-py3-none-any.whl
| Download URL | fau_tools-2.1.1-py3-none-any.whl |
|---|---|
| Size | 19.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1dad1e02bf062705e30f4f674f64bd153e0d328c22605d3b6b8c8820d34c39d0
|
|
BLAKE2b-256 checksum How to use checksums |
74162b4b353916ef8ba4d234b76a9523fb5f21269ebfce25086ce3941a557796
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.11 {"installer":{"name":"uv","version":"0.12.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for fau-tools 2.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.