Skip to content

Instantly share code, notes, and snippets.

View lzqlzzq's full-sized avatar

Zhongqi Luo lzqlzzq

View GitHub Profile
@lzqlzzq
lzqlzzq / mlp.py
Last active December 22, 2023 11:31
A simple and clean Multilayer Perceptron implementation (pytorch)
from typing import List
from itertools import chain
import torch
from torch import nn
class MLP(nn.Module):
def __init__(self,
hidden_sizes: List[int],
act_fn: nn.Module = nn.ReLU,
@lzqlzzq
lzqlzzq / hmcn.py
Last active December 5, 2023 03:29
A HMCN-F (Hierarchical Multi-Label Classification Networks) implementation for pytorch
# http://proceedings.mlr.press/v80/wehrmann18a/wehrmann18a.pdf
from collections import OrderedDict
from typing import Tuple
import torch
from torch import nn
from torch.nn import functional as F
@lzqlzzq
lzqlzzq / sequence.tex
Last active October 20, 2023 05:15
A latex snippet using tikz to create beautiful token diagrams
\documentclass[border=1pt,tikz]{standalone}
\usepackage{listofitems}
\usepackage{tikz}
\usetikzlibrary{arrows}
\usetikzlibrary{backgrounds}
\newcounter{attributecount}
\NewDocumentCommand{\attribute}{mm} {
\draw[black, fill={#1}, rounded corners=6, thick] (0.1, \value{attributecount}+0.12) rectangle (3.9, \value{attributecount}+0.98) node at (2, \value{attributecount}+0.5) {#2};
@lzqlzzq
lzqlzzq / mhc.py
Created October 23, 2023 05:30
A simple multi-head classifier implementation (Pytorch).
"""
* A simple multi-head classifier implementation.
+-----------------+
+--------------+ | logits_dict |
| hidden | +-----------------+
+------+-------+ ^
| |
v +--------------------+--------------------+
+--------------+ | | |
| joint_layer | +---------------+ +---------------+ +---------------+
@lzqlzzq
lzqlzzq / xdeepfm.py
Last active November 1, 2023 10:18
A xDeepFM module implementation for pytorch
from typing import List
from itertools import chain
import torch
from torch import nn
class Transpose(nn.Module):
def __init__(self, *args):
super().__init__()
@lzqlzzq
lzqlzzq / dcnv2.py
Created November 5, 2023 04:59
DCNv2 (Deep CrossNet v2) implementation for pytorch.
from typing import List
from itertools import chain
import torch
from torch import nn
class Transpose(nn.Module):
def __init__(self, *args):
super().__init__()
@lzqlzzq
lzqlzzq / fmfm.py
Last active November 5, 2023 12:54
Field-matrixed Factorization Machines implementation for pytorch
# https://arxiv.org/pdf/2102.12994.pdf
from typing import Dict
from itertools import permutations
import torch
from torch import nn
from math import sqrt
class FMFM(nn.Module):
@lzqlzzq
lzqlzzq / autoint.py
Created November 6, 2023 15:28
Modified AutoInt (Automatic Feature Interaction) for embedding aggregation (pytroch implementation)
# https://arxiv.org/pdf/1810.11921.pdf
from typing import Dict
from itertools import product
import torch
from torch import nn
import torch.nn.functional as F
class AutoInt(nn.Module):
def __init__(self,
@lzqlzzq
lzqlzzq / trainable_stft.py
Last active January 18, 2024 03:13
Trainable STFT(Short-time Fourier Transformation) Module in pytorch
import torch
import torch.nn as nn
import torch.nn.functional as F
import torchaudio
import numpy as np
def get_fourier_basis(win_length, window_func=torch.hann_window):
# Create kernels for STFT, initialized to Fourier basis
n_basis = win_length // 2 + 1
@lzqlzzq
lzqlzzq / MetaNumeric.hpp
Last active November 30, 2023 14:27
A C++ generic numeric type that you can inherit from!
#ifndef _META_NUMERIC_
#define _META_NUMERIC_
#include <iostream>
#include <string>
namespace metanumeric {
#define UNARY_ASGN_OPTS \