This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# In case you didn't think to add k-fold cross-validation until late in your | |
# ML project,... | |
# This is built for a situation where datasets are arrays of, say, images. | |
def kfold_swap(train_X, train_Y, val_X, val_Y, k): | |
""" | |
Swaps val with a section of train, given a value for k | |
"Duct tape" approach used to "retro-fit" k-fold cross-validation while minimally | |
disturbing the rest of the code, while avoiding reloading data from disk and | |
keeping RAM use manageable. (e.g. np.append() is bad b/c it would copy all of train) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# Do violence to the Logitech C920s webcam settings in realtime | |
# To annoy your Zoom-mates by constantly changing the image | |
from pynput.keyboard import Listener | |
import os, sys | |
import random | |
import time |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc | |
index 561276f0c2..1af0935e1f 100644 | |
--- a/src/core/lib/gpr/log_linux.cc | |
+++ b/src/core/lib/gpr/log_linux.cc | |
@@ -40,7 +40,7 @@ | |
#include <time.h> | |
#include <unistd.h> | |
-static long gettid(void) { return syscall(__NR_gettid); } | |
+static long sys_gettid(void) { return syscall(__NR_sys_gettid); } |
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env python | |
''' | |
greenscreen.py: Greenscreen effect without a physical green screen | |
This performs background subtraction, and sets the background to "green" for use with "key frame" video editing software | |
Author: Scott Hawley, https://github.com/drscotthawley | |
Requirements: | |
Python, NumPy and OpenCV | |
I got these via Macports, but Homebrew, etc. work. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import numpy as np | |
def get_1cycle_schedule(lr_max=1e-3, n_data_points=8000, epochs=200, batch_size=40, verbose=0): | |
""" | |
Creates a look-up table of learning rates for 1cycle schedule with cosine annealing | |
See @sgugger's & @jeremyhoward's code in fastai library: https://github.com/fastai/fastai/blob/master/fastai/train.py | |
Wrote this to use with my Keras and (non-fastai-)PyTorch codes. | |
Note that in Keras, the LearningRateScheduler callback (https://keras.io/callbacks/#learningratescheduler) only operates once per epoch, not per batch | |
So see below for Keras callback | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#! /usr/bin/env python3 | |
""" | |
SLURM usage tracker Discord bot by drscotthawley & rom1504 | |
Requires external file token_channel.csv to connect to Discord | |
Syntax of that file should be: | |
token,channel | |
<DISCORD_BOT_TOKEN>,<CHANNEL_ID> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def magic_mult(a, b): | |
""" | |
Tries to multiply two arrays/matrices in a variety of ways | |
Returns all possible working combos as a dict, with the shapes of their respective outputs | |
Author: Scott H. Hawley, @drscotthawley | |
""" | |
combos = ['a*b', 'a*b.T', 'a.T*b', 'a.T*b.T','b*a', 'b*a.T', 'b.T*a', 'b.T*a.T'] # elementwise multiplications | |
combos += [s.replace('*',' @ ') for s in combos] # matrix multiplications (I like the space here) | |
working_combos = {} | |
for s in combos: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Gamepad_Eyes_OSC: demo of using game controller for OSC input. | |
// Uses the two thumb-sticks and either the left or right bumper buttons. | |
// | |
// Peter Lager maintains the Game Control Plus library (for Processing), | |
// which provides control data for joysticks and other game controllers | |
// ...such as my Xbox 360 controller. | |
// | |
// This is a quick mash-up using Lager's Gcp_gamepad animated eyes example code, | |
// (which is in the GCP library: In Processing, go to File > Examples..., then Contributed Libraries > Game Control Plus) | |
// and Rebecca Fiebrink's Simple_Mouse_DraggedObject_2Inputs example code for Wekinator. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from einops import rearrange as _rearrange | |
class RearrangeWrapper(): | |
"wrapper to endow einops.rearrange with an 'inverse' operation" | |
def __init__(self): | |
self.shape, self.s = None, None # just in case someone tries to call inverse first | |
def __call__(self, x, s:str, **kwargs): # this 'forward' call is lightweight to preserve original usage | |
self.shape, self.s = x.shape, s | |
return _rearrange(x, s, **kwargs) |