Skip to content

Instantly share code, notes, and snippets.

Avatar

Gavin Gray gngdb

View GitHub Profile
@gngdb
gngdb / d12.py
Created Apr 9, 2020
Pure Python Gumbel Dice
View d12.py
import dice
print(dice.roll(12))
@gngdb
gngdb / show.py
Last active Feb 11, 2020
Display Images from arrays and tensors in Python 3 (based on https://github.com/google/deepdream/blob/master/dream.ipynb)
View show.py
from io import BytesIO
import PIL.Image
from IPython.display import clear_output, Image, display
def showarray(a, fmt='jpeg'):
a = a - a.min()
a = 255.*(a/a.max())
a = np.uint8(np.clip(a, 0, 255))
f = BytesIO()
PIL.Image.fromarray(a).save(f, fmt)
View Index Cartesian Product.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@gngdb
gngdb / Parameter Redundancy Through Time.ipynb
Last active Oct 17, 2019
Parameter redundancy from 5 pruning papers through time.
View Parameter Redundancy Through Time.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@gngdb
gngdb / pointwise.py
Created Sep 17, 2019
Pointwise convolution in PyTorch without using conv2d.
View pointwise.py
import torch
from torch.nn.functional import conv2d
def pointwise(X, W):
n,c_in,h,w = X.size() # (n examples, c_in channels, height, width)
c_out,c_in,_,_ = W.size() # (c_out channels, c_in channels, 1, 1)
W = W.view(c_out,c_in) # squeeze size 1 dims, shape=(c_out, c_in)
X = X.view(n,c_in,h*w) # flatten spatial dims
X = X.permute(0,2,1) # transpose, shape=(n,h*w, c_in)
K = X.reshape(n*h*w,c_in) # kernel matrix, shape=(n*h*w, c_in)
@gngdb
gngdb / i3lock-bashrc
Created Sep 17, 2019
bashrc snippet for creating images for i3lock to use as a lockscreen background.
View i3lock-bashrc
# for making lockscreen images
set-i3lock-bg() {
if [ ! -f ~/lock.png ]; then
curl https://raw.githubusercontent.com/meskarune/i3lock-fancy/master/icons/lock.png > ~/lock.png
fi
SIZE=`xdpyinfo | grep dimensions | cut -d " " -f 7`
convert $1 -font Liberation-Sans \
-geometry $SIZE -gravity center\
-pointsize 26 -fill white -extent $SIZE -gravity center \
-annotate +0+160 "Type Password to Unlock" ~/lock.png \
@gngdb
gngdb / mosh-algo
Created Sep 9, 2019
Script for easy mosh connections
View mosh-algo
#!/bin/bash
ALGO_IP=`ip addr | awk '
/^[0-9]+:/ {
sub(/:/,"",$2); iface=$2 }
/^[[:space:]]*inet / {
split($2, a, "/")
print iface" : "a[1]
}' | grep tun | cut -b 8- | cut -d "." -f 1-3 | sed 's/$/.1/'`
mosh --ssh="ssh -i algo.pem" ubuntu@$ALGO_IP
@gngdb
gngdb / cloudshell-algo-reqs.sh
Last active Sep 6, 2019
Script to install algo requirements to a cloud shell environment.
View cloudshell-algo-reqs.sh
sudo apt-get update && sudo apt-get install \
build-essential \
libssl-dev \
libffi-dev \
python-dev \
python-pip \
python-setuptools \
python-virtualenv -y
sudo pip2 install -r requirements.txt
@gngdb
gngdb / twitter_ui.blocklist
Created Aug 2, 2019
uBlock origin rules for a cleaner Twitter (removes search as well because I never use it).
View twitter_ui.blocklist
! 6/23/2019 https://twitter.com
twitter.com##.trends.Trends.module
twitter.com##.r-1adg3ll.css-1dbjc4n > .css-1dbjc4n > .r-1sp51qo.r-1wtj0ep.r-qklmqi.r-rull8r.r-my5ep6.css-1dbjc4n
twitter.com##div.r-1adg3ll.r-qklmqi.r-my5ep6.css-1dbjc4n:nth-of-type(2) > .r-6416eg.r-o7ynqc.r-1w50u8q.r-utggzx.r-6koalj.r-1loqt21.css-1dbjc4n
twitter.com##.r-1l5qxre.css-1dbjc4n
! 6/24/2019 https://twitter.com
twitter.com##div.r-1adg3ll.r-qklmqi.r-my5ep6.css-1dbjc4n:nth-of-type(3) > .r-6416eg.r-o7ynqc.r-1xtiow5.r-5f36wq.r-6koalj.r-1loqt21.css-1dbjc4n
twitter.com##div.r-1adg3ll.r-qklmqi.r-my5ep6.css-1dbjc4n:nth-of-type(4) > .r-6416eg.r-o7ynqc.r-1xtiow5.r-5f36wq.r-6koalj.r-1loqt21.css-1dbjc4n
twitter.com##div.r-1adg3ll.r-qklmqi.r-my5ep6.css-1dbjc4n:nth-of-type(5) > .r-6416eg.r-o7ynqc.r-1xtiow5.r-5f36wq.r-6koalj.r-1loqt21.css-1dbjc4n
You can’t perform that action at this time.