Skip to main content

Some utility functions for working with PyTorch.

Project description

cjm-pytorch-utils

Install

pip install cjm_pytorch_utils

How to use

set_seed

from cjm_pytorch_utils.core import set_seed
seed = 1234
set_seed(seed)

pil_to_tensor

from cjm_pytorch_utils.core import pil_to_tensor
from PIL import Image
from torchvision import transforms
img_path = img_path = '../images/cat.jpg'
src_img = Image.open(img_path).convert('RGB')
print(f"Source Image Size: {src_img.size}")

img_tensor = pil_to_tensor(src_img, [0.5], [0.5])
img_tensor.shape, img_tensor.min(), img_tensor.max()
Source Image Size: (768, 512)

(torch.Size([1, 3, 512, 768]), tensor(-1.), tensor(1.))

tensor_to_pil

from cjm_pytorch_utils.core import tensor_to_pil
tensor_img = tensor_to_pil(transforms.ToTensor()(src_img))
tensor_img

iterate_modules

from cjm_pytorch_utils.core import iterate_modules
import torch
from torchvision import models
vgg = models.vgg16(weights=models.VGG16_Weights.IMAGENET1K_V1).features

for index, module in enumerate(iterate_modules(vgg)):
    if type(module) == torch.nn.modules.activation.ReLU:
        print(f"{index}: {module}")
1: ReLU(inplace=True)
3: ReLU(inplace=True)
6: ReLU(inplace=True)
8: ReLU(inplace=True)
11: ReLU(inplace=True)
13: ReLU(inplace=True)
15: ReLU(inplace=True)
18: ReLU(inplace=True)
20: ReLU(inplace=True)
22: ReLU(inplace=True)
25: ReLU(inplace=True)
27: ReLU(inplace=True)
29: ReLU(inplace=True)

tensor_stats_df

from cjm_pytorch_utils.core import tensor_stats_df
tensor_stats_df(torch.randn(1, 3, 256, 256))
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; } .dataframe tbody tr th { vertical-align: top; } .dataframe thead th { text-align: right; } </style>
0
mean 0.003342
std 0.99868
min -4.558271
max 4.815985
shape (1, 3, 256, 256)

get_torch_device

from cjm_pytorch_utils.core import get_torch_device
get_torch_device()
'cuda'

denorm_img_tensor

from cjm_pytorch_utils.core import denorm_img_tensor
tensor_to_pil(img_tensor)

tensor_to_pil(denorm_img_tensor(img_tensor, [0.5], [0.5]))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cjm_pytorch_utils-0.0.8.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

cjm_pytorch_utils-0.0.8-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file cjm_pytorch_utils-0.0.8.tar.gz.

File metadata

  • Download URL: cjm_pytorch_utils-0.0.8.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.14

File hashes

Hashes for cjm_pytorch_utils-0.0.8.tar.gz
Algorithm Hash digest
SHA256 a7ddc70630509190b7d4e1c2b151533e89a10f7ca84255639dd3a5d2e4dc8f11
MD5 4b0a3218c4a2429e9f90ee414a528868
BLAKE2b-256 b67351804cccd2797d45aa0b131189456ac100af76b211b08350d72b60f62100

See more details on using hashes here.

File details

Details for the file cjm_pytorch_utils-0.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for cjm_pytorch_utils-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 406608c10ac5a022f16f5d2ba8dd843fdfe338809fe975987538b83bf8f0c172
MD5 a724d8e97b89624305ef35a1fc4a6801
BLAKE2b-256 6a1fbfe678df47d83fa600287da3fe19de8c7e4817f3ff9bbb493301fae843c2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page