Skip to content

Instantly share code, notes, and snippets.

David Warde-Farley dwf

View GitHub Profile
@dwf
dwf / coventry_regex.py
Created Aug 28, 2018
Autofill CoventryBS's silly 2FA with Bitwarden regex custom fields.
View coventry_regex.py
"""
Take in a CoventryBS grid card as a text file, output regex custom fields for
Bitwarden to autofill your grid card challenge for you.
"""
from __future__ import print_function
import fileinput
import itertools
import sys
COLS = 'ABCDEFGHIJ'
@dwf
dwf / bcefl.py
Created Apr 10, 2017
Stable binary cross-entropy, operating on logit predictions instead of relying on Theano to correctly optimize the sigmoid output.
View bcefl.py
from theano import tensor
def binary_crossentropy_from_logits(logits, targets):
"""Binary cross-entropy computed from model logits.
Parameters
----------
predictions : TensorVariable
The unnormalized log probabilities of a probabilistic binary
classifier.
targets : TensorVariable
@dwf
dwf / simple_mnist_gan.py
Created Jan 20, 2017
Single-script Blocks reproduction of the Goodfellow et al (2014) MNIST GAN.
View simple_mnist_gan.py
from collections import OrderedDict
from blocks.algorithms import GradientDescent, Momentum
from blocks.bricks import (
MLP, Rectifier, Logistic, Linear, LinearMaxout, Sequence, Random
)
from blocks.extensions import Printing, Timing
from blocks.extensions.training import SharedVariableModifier
from blocks.extensions.monitoring import (DataStreamMonitoring,
TrainingDataMonitoring)
@dwf
dwf / interleaved.ipynb
Created Oct 12, 2016
Example of interleaving data streams with Fuel and conditional processing with Blocks.
View interleaved.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@dwf
dwf / sshft.sh
Created Oct 9, 2016
Easily forward ports through an SSH login node.
View sshft.sh
sshft() {
if [ $# -lt 2 ]; then
echo "usage: sshft host [port|local:remote|local:bridge:remote] ...]"
return 1
fi
if [ -z "$DEFAULT_SSH_PROXY_HOST" ]; then
echo "No DEFAULT_SSH_PROXY_HOST set."
return 1
fi
FIRST_SSH_ARGS="$DEFAULT_SSH_PROXY_HOST"
@dwf
dwf / lib.py
Last active Dec 20, 2016
Minimal examples of using the Blocks MainLoop and checkpointing machinery.
View lib.py
# It's important not to define any classes you want serialized in
# the script you're running as pickle doesn't like that (if you pass
# save_main_loop=False to Checkpoint it's fine, though).
from theano import tensor
import numpy
import theano
from picklable_itertools import imap, izip, repeat
# Your algorithm object just needs two required methods: initialize()
@dwf
dwf / segmented_epoch_stream.py
Created Sep 28, 2016
Fuel DataStream that segments the epochs of another DataStream.
View segmented_epoch_stream.py
"""Fuel DataStream that segments the epochs of another DataStream."""
__license__ = """
Copyright (c) 2016 Universite de Montreal
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
@dwf
dwf / gist:c659fdd50285b5a4885c10acc34b77e7
Created Apr 20, 2016
traceback of IPython caught in infinite corrupt DB handling loop
View gist:c659fdd50285b5a4885c10acc34b77e7
Traceback (most recent call last):
File "/u/wardefar/miniconda/lib/python3.4/site-packages/IPython/core/history.py", line 85, in catch_corrupt_db
return f(self, *a, **kw)
File "/u/wardefar/miniconda/lib/python3.4/site-packages/IPython/core/history.py", line 227, in init_db
end timestamp, num_cmds integer, remark text)""")
sqlite3.OperationalError: disk I/O error
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
@dwf
dwf / binary_cross_entropy.tex
Created Feb 17, 2016
Simplification of binary cross-entropy in terms of logits, yielding the familiar gradient.
View binary_cross_entropy.tex
\documentclass[12pt]{article}
\usepackage{amsmath}
\begin{document}
\begin{eqnarray*}
CE(a, t) & = & -t\log\left(\sigma(a)\right) - (1 - t)\log\left(1 - \sigma(a)\right) \\
& = & -t \log \left(\frac{1}{1 + \exp(a)}\right) - (1 - t)\log\left(1 - \frac{1}{1 + \exp(a)}\right) \\
& = & -t \log \left(\frac{1}{1 + \exp(a)}\right) - (1 - t)\log\left(\frac{\exp(a)}{1 + \exp(a)}\right) \\
& = & t \log \left(1 + \exp(a)\right) - \left[(1 - t)\log(\exp(a)) - \log(1 + \exp(a))\right] \\
&= & t \log \left(1 + \exp(a)\right) - (1 - t)\log(\exp(a)) + (1 - t)\log(1 + \exp(a)) \\
@dwf
dwf / rpn.py
Created Feb 5, 2016
A reverse Polish notation calculator in 50 lines.
View rpn.py
"""A reverse Polish notation calculator. Supports float and int literals."""
from __future__ import print_function
import operator
import sys
OPERATORS = {'+': operator.add, '-': operator.sub, '%': operator.mod, '/':
operator.truediv, '//': operator.floordiv, '*': operator.mul,
'**': operator.pow}
You can’t perform that action at this time.