Skip to content

Instantly share code, notes, and snippets.

import tempfile
import urllib.request
import importlib.util
from pathlib import Path
def import_from_url(url):
"""Import a module from a given URL"""
with tempfile.TemporaryDirectory() as path:
path = Path(path) / Path(url).name
@xmodar
xmodar / monitor_torch.py
Created August 31, 2021 22:49
Tool to monitor used GPU memory (bytes) and time (nanseconds) in PyTorch
import gc
import math
import time
import datetime
from contextlib import contextmanager
import torch
class Monitor:
@xmodar
xmodar / modelnet40.py
Last active August 25, 2021 15:42
ModelNet40 Dataset
import ssl
import urllib
from pathlib import Path
import torch
from torch.utils.data import Dataset
from torchvision.datasets.utils import extract_archive, check_integrity
import h5py
import pandas as pd
@xmodar
xmodar / rearrange.py
Last active July 31, 2021 20:08
Memics einops.rearrange for simple cases. Can be simplified with named_tensors. Can be optimized with tracing.
import math
def chunk_dim(tensor, chunks, dim=0):
"""Split a dimension of a tensor into two dimensions"""
shape = list(tensor.shape)
shape[dim] //= chunks
shape.insert(dim, chunks)
return tensor.view(shape)
@xmodar
xmodar / frechet.py
Last active August 8, 2022 18:54
Frechet's distance entirely in PyTorch with data batches streaming support.
"""Frechet's distance between two multi-variate Gaussians"""
import torch
import torch.nn as nn
class FrechetDistance:
"""Frechet's distance between two multi-variate Gaussians
https://www.sciencedirect.com/science/article/pii/0047259X8290077X
"""
def __init__(self, double=True, num_iterations=20, eps=1e-12):
from typing import Tuple, Optional, Union, List
import torch
import torch.nn as nn
__all__ = [
'dot', 'get_neighbors', 'gather_features', 'point_sparsity',
'weighted_sampling'
]
import itertools
from typing import Tuple, Optional
from contextlib import contextmanager
import torch
from torch.utils import benchmark
# @torch.jit.script
def nearest_neighbors(
"""Utilities for argparse arguments."""
import os
import sys
from argparse import Namespace
from collections import OrderedDict
from itertools import product, chain
from typing import Union, Dict
__all__ = ['parse_grid']
#!/usr/bin/env python3
"""Ego4D video box blur."""
import gc
import json
from pathlib import Path
from argparse import ArgumentParser
# conda install av pillow tqdm -c conda-forge -c anaconda
import av # used versions: av=8.0.3 and ffmpeg=4.3.1
from tqdm import tqdm # used versions: tqdm=4.59.0
"""YOLOv3 object detector."""
import math
from pathlib import Path
from urllib.request import urlopen
from PIL import Image
from PIL import ImageColor, ImageOps
import matplotlib.pyplot as plt
import matplotlib.patches as patches