Skip to content

Instantly share code, notes, and snippets.

import argparse
import csv
from pathlib import Path
import torch
from torch import optim, nn
from torch.nn import functional as F
from torch.utils import data
from torchvision import datasets, transforms, utils
from torchvision.transforms import functional as TF
#!/usr/bin/env python3
import argparse
from collections import defaultdict
import csv
import math
import torch
from torch import nn, optim
from torch.nn import functional as F
@crowsonkb
crowsonkb / pseudo_huber.py
Created February 7, 2021 12:33
The Pseudo-Huber loss
import torch
from torch import nn
class PseudoHuberLoss(nn.Module):
"""The Pseudo-Huber loss."""
reductions = {'mean': torch.mean, 'sum': torch.sum, 'none': lambda x: x}
def __init__(self, beta=1, reduction='mean'):
@crowsonkb
crowsonkb / softpool.py
Created February 7, 2021 12:21
Applies a 2D soft pooling over an input signal composed of several input planes. See https://arxiv.org/abs/2101.00440
from torch import nn
from torch.nn import functional as F
class SoftPool2d(nn.Module):
"""Applies a 2D soft pooling over an input signal composed of several
input planes. See https://arxiv.org/abs/2101.00440"""
def __init__(self, kernel_size, ceil_mode=False, temperature=1.):
super().__init__()
@crowsonkb
crowsonkb / mnist_imle_vgg.py
Last active February 5, 2021 21:13
Trains IMLE on the MNIST dataset.
"""Trains IMLE on the MNIST dataset."""
import torch
from torch import optim, nn
from torch.utils import data
from torchvision import datasets, transforms, utils
from torchvision.transforms import functional as TF
from tqdm import tqdm
from vgg_loss import vgg_loss
@crowsonkb
crowsonkb / mnist_imle.py
Last active February 5, 2021 13:52
Trains IMLE on the MNIST dataset.
"""Trains IMLE on the MNIST dataset."""
import torch
from torch import optim, nn
from torch.nn import functional as F
from torch.utils import data
from torchvision import datasets, transforms, utils
from torchvision.transforms import functional as TF
from tqdm import tqdm
@crowsonkb
crowsonkb / resample.py
Last active July 22, 2024 16:10
Good differentiable image resampling for PyTorch.
"""Good differentiable image resampling for PyTorch."""
from functools import update_wrapper
import math
import torch
from torch.nn import functional as F
def sinc(x):
@crowsonkb
crowsonkb / downsample.py
Last active February 3, 2021 19:41
Better image downsampling (factor of 2) in PyTorch
from math import ceil
import torch
from torch import nn
from torch.nn import functional as F
class Downsample2d(nn.Module):
kernels = {
'binomial2': [0.25, 0.5, 0.25],
@crowsonkb
crowsonkb / mdmm_2.py
Created February 1, 2021 00:47
Modified Differential Multiplier Method
import abc
import torch
from torch import nn, optim
class Constraint(nn.Module, metaclass=abc.ABCMeta):
def __init__(self, fn, damping):
super().__init__()
self.fn = fn
@crowsonkb
crowsonkb / mdmm.py
Last active February 1, 2021 00:33
Modified Differential Multiplier Method
import torch
from torch import nn, optim
class Constraint(nn.Module):
def __init__(self, fn, maximum, damping=1e-2):
super().__init__()
self.fn = fn
self.register_buffer('maximum', torch.as_tensor(maximum))
self.register_buffer('damping', torch.as_tensor(damping))