Skip to content

Instantly share code, notes, and snippets.

View darsnack's full-sized avatar

Kyle Daruwalla darsnack

View GitHub Profile
@darsnack
darsnack / pyproject.toml
Created December 6, 2023 15:48
Poetry environment marker issue
[tool.poetry]
name = "example-project"
version = "0.1.0"
description = ""
authors = ["Test Name <test@gmail.com>"]
[tool.poetry.dependencies]
python = "~3.10"
jax = [
{version="0.4.21", extras=["cuda11_pip"], platform="linux"},
@darsnack
darsnack / fwd_ad_functor.jl
Created November 18, 2022 15:10
Forward mode AD for Functors.jl
struct FilteredWalk{F, T, G}
filter_set::F
prune::T
rebuilder::G
end
FilteredWalk(filter_set; prune = identity, rebuilder = identity) =
FilteredWalk(filter_set, prune, rebuilder)
function (walk::FilteredWalk)(recurse, x, ys...)
children, re = Functors.functor(x)
@darsnack
darsnack / Manifest.toml
Created June 8, 2022 22:37
torchvision to Metalhead port scripts
# This file is machine-generated - editing it directly is not advised
julia_version = "1.7.2"
manifest_format = "2.0"
[[deps.AbstractFFTs]]
deps = ["ChainRulesCore", "LinearAlgebra"]
git-tree-sha1 = "6f1d9bc1c08f9f4a8fa92e3ea3cb50153a1b40d4"
uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c"
version = "1.1.0"
@darsnack
darsnack / Manifest.toml
Created June 2, 2022 18:59
`Chain(::Vector)` instability
# This file is machine-generated - editing it directly is not advised
julia_version = "1.7.2"
manifest_format = "2.0"
[[deps.AbstractFFTs]]
deps = ["ChainRulesCore", "LinearAlgebra"]
git-tree-sha1 = "6f1d9bc1c08f9f4a8fa92e3ea3cb50153a1b40d4"
uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c"
version = "1.1.0"
@darsnack
darsnack / stratifiedobs.jl
Created April 21, 2022 16:44
Port `stratifiedobs` from MLDataPattern to MLUtils
using Random: shuffle!
using Base: @nexprs, @ntuple
function _splitobs(lm::Dict{T,Vector{I}}, at::AbstractFloat) where {T,I<:Integer}
0 < at < 1 || throw(ArgumentError("the parameter \"at\" must be in interval (0, 1)"))
n = mapreduce(length, +, values(lm))
k = length(keys(lm))
# preallocate the indices vectors
idx1 = Vector{I}()
idx2 = Vector{I}()
@darsnack
darsnack / makefile
Created June 24, 2021 19:10
Pandoc makefile for academic writing
MDSRC = $(wildcard ./markdown/*.md)
BIB = ./ref.bib
TEXPATH = ./tex
TEXSRC = main
OUTDIR = ./output
debug:
@echo $(MDSRC)
@echo $(MDOUT)
@darsnack
darsnack / snippet-1.jl
Created November 26, 2020 23:55
GPU Allocation Snippets
using DiffEqFlux, OrdinaryDiffEq, Flux, Printf
using Flux.Losses: logitcrossentropy
using Flux.Data: DataLoader
using MLDatasets
using MLDataUtils: LabelEnc, convertlabel, stratifiedobs
using CUDA
CUDA.allowscalar(false)
function loadmnist(batchsize = bs, train_split = 0.9)
# Use MLDataUtils LabelEnc for natural onehot conversion
struct OptionAIdentity
pool::MaxPool
end
OptionAIdentity(scale::Integer) = OptionAIdentity(MaxPool((scale, scale)))
OptionAIdentity(scale::Tuple{<:Integer, <:Integer}) = OptionAIdentity(MaxPool(scale))
function (op::OptionAIdentity)(x, y)
z = op.pool(y)
npadchannels = size(x, 3) - size(z, 3)
return (npadchannels > 0) ? cat(z, zeros(Float32, size(z, 1), size(z, 2), npadchannels, size(z, 4)); dims = 3) : z
@darsnack
darsnack / Error trace
Created December 26, 2019 13:51
Error trace
TREE: bitstream.types.SBitstream.sqrt(x)(SimulationId("bitstream.types.SBitstream", "x"))
TRANSFORM: /Users/darsnack/Code/BitSAD/BitBench/IterativeSVD/IterativeSVD.scala
TREE: var z: bitstream.types.SBitstream = bitstream.types.SBitstream.sqrt(x)(SimulationId("bitstream.types.SBitstream", "x"))
TREE: {
var z: bitstream.types.SBitstream = bitstream.types.SBitstream.sqrt(x)(SimulationId("bitstream.types.SBitstream", "x"));
var b: bitstream.types.SBitstream = z.$plus(y)(SimulationId("z", "y"));
b
}
TREE: ({
var z: bitstream.types.SBitstream = bitstream.types.SBitstream.sqrt(x)(SimulationId("bitstream.types.SBitstream", "x"));
@darsnack
darsnack / Macros.scala
Last active December 26, 2019 13:52
An implementation of a transformer macro
package bitstream.macros
import scala.language.experimental.macros
import scala.reflect.macros.blackbox.Context
object Macros {
def simulatable[T](expr: T): Any = macro simulatable_impl[T]
def simulatable_impl[T](c: Context)(expr: c.Expr[T]): c.Expr[T] = {