{{ message }}

Instantly share code, notes, and snippets.

# Jay S jshin49

Last active May 28, 2021
Sample the next token from a probability distribution using top-k and/or nucleus (top-p) sampling
View top-k-top-p.py
 def top_k_top_p_filtering(logits, top_k=0, top_p=0.0, filter_value=-float('Inf')): """ Filter a distribution of logits using top-k and/or nucleus (top-p) filtering Args: logits: logits distribution shape (vocabulary size) top_k >0: keep only top k tokens with highest probability (top-k filtering). top_p >0.0: keep the top tokens with cumulative probability >= top_p (nucleus filtering). Nucleus filtering is described in Holtzman et al. (http://arxiv.org/abs/1904.09751) """ assert logits.dim() == 1 # batch size 1 for now - could be updated for more but the code would be less clear top_k = min(top_k, logits.size(-1)) # Safety check
Last active Jan 8, 2021
Pytorch trick : occupy all GPU memory in advance
View occupy-memory.py
 import os import torch from tqdm import tqdm import time # declare which gpu device to use cuda_device = '0' def check_mem(cuda_device): devices_info = os.popen('"/usr/bin/nvidia-smi" --query-gpu=memory.total,memory.used --format=csv,nounits,noheader').read().strip().split("\n")
Last active Sep 27, 2017
bash commands to control nvidia gpu fan
View .bash_aliases
 alias upgrade="sudo -- sh -c 'apt-get update; apt-get upgrade -y; apt-get dist-upgrade -y; apt-get autoremove -y; apt-get autoclean -y'" alias fastgpu="sudo env DISPLAY=:0 nvidia-settings -a GPUFanControlState=1 -a GPUTargetFanSpeed=100" alias normalgpu="sudo env DISPLAY=:0 nvidia-settings -a GPUFanControlState=0" alias mediumgpu="sudo env DISPLAY=:0 nvidia-settings -a GPUFanControlState=1 -a GPUTargetFanSpeed=60"
Last active May 9, 2021
Array iteration methods summarized
View array_iteration_thoughts.md

While attempting to explain JavaScript's `reduce` method on arrays, conceptually, I came up with the following - hopefully it's helpful; happy to tweak it if anyone has suggestions.

## Intro

JavaScript Arrays have lots of built in methods on their prototype. Some of them mutate - ie, they change the underlying array in-place. Luckily, most of them do not - they instead return an entirely distinct array. Since arrays are conceptually a contiguous list of items, it helps code clarity and maintainability a lot to be able to operate on them in a "functional" way. (I'll also insist on referring to an array as a "list" - although in some languages, `List` is a native data type, in JS and this post, I'm referring to the concept. Everywhere I use the word "list" you can assume I'm talking about a JS Array) This means, to perform a single operation on the list as a whole ("atomically"), and to return a new list - thus making it much simpler to think about both the old list and the new one, what they contain, and

Created Mar 18, 2014
rename git branch locally and remotely
View gist:9628955
 git branch -m old_branch new_branch # Rename branch locally git push origin :old_branch # Delete the old branch git push --set-upstream origin new_branch # Push the new branch, set local branch to track the new remote