Skip to content

Instantly share code, notes, and snippets.

David Warde-Farley dwf

View GitHub Profile
dwf /
Created Aug 28, 2018
Autofill CoventryBS's silly 2FA with Bitwarden regex custom fields.
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
dwf /
Created Apr 10, 2017
Stable binary cross-entropy, operating on logit predictions instead of relying on Theano to correctly optimize the sigmoid output.
from theano import tensor
def binary_crossentropy_from_logits(logits, targets):
"""Binary cross-entropy computed from model logits.
predictions : TensorVariable
The unnormalized log probabilities of a probabilistic binary
targets : TensorVariable
dwf /
Created Jan 20, 2017
Single-script Blocks reproduction of the Goodfellow et al (2014) MNIST GAN.
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 import SharedVariableModifier
from blocks.extensions.monitoring import (DataStreamMonitoring,
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 /
Created Oct 9, 2016
Easily forward ports through an SSH login node.
sshft() {
if [ $# -lt 2 ]; then
echo "usage: sshft host [port|local:remote|local:bridge:remote] ...]"
return 1
if [ -z "$DEFAULT_SSH_PROXY_HOST" ]; then
return 1
dwf /
Last active Dec 20, 2016
Minimal examples of using the Blocks MainLoop and checkpointing machinery.
# 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 /
Created Sep 28, 2016
Fuel DataStream that segments the epochs of another DataStream.
"""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 / 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/", line 85, in catch_corrupt_db
return f(self, *a, **kw)
File "/u/wardefar/miniconda/lib/python3.4/site-packages/IPython/core/", 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 / 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
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 /
Created Feb 5, 2016
A reverse Polish notation calculator in 50 lines.
"""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.