Note: I'm currently taking a break from this course to focus on my studies so I can finally graduate
# | |
# UPDATE for 10.10.4+: please consider this patch obsolete, as apple provides a tool called "trimforce" to enable trim support for 3rd party SSDs | |
# just run "sudo trimforce enable" to activate the trim support from now on! | |
# | |
# Original version by Grant Parnell is offline (http://digitaldj.net/2011/07/21/trim-enabler-for-lion/) | |
# Update July 2014: no longer offline, see https://digitaldj.net/blog/2011/11/17/trim-enabler-for-os-x-lion-mountain-lion-mavericks/ | |
# | |
# Looks for "Apple" string in HD kext, changes it to a wildcard match for anything | |
# | |
# Alternative to http://www.groths.org/trim-enabler-3-0-released/ |
### | |
# !!! THIS IS NOT A BASH SCRIPT !!! | |
### | |
# named .sh just so Github does correct syntax highlighting | |
# Inspired by https://gist.github.com/erikbern/78ba519b97b440e10640 | |
# | |
# This setup is available as a public AMI in US-East(N. Virginia): ami-9d0f3ff7 | |
# Add repos for cmake and gcc |
This configuration worked for me, hope it helps
It is based on: https://becominghuman.ai/deep-learning-gaming-build-with-nvidia-titan-xp-and-macbook-pro-with-thunderbolt2-5ceee7167f8b
and on: https://stackoverflow.com/questions/44744737/tensorflow-mac-os-gpu-support
This gist contains a list of points I found very useful while watching the fast.ai "Practical deep learning for coders" and "Cutting edge deep learning for coders" MOOC by Jeremy Howard and team. This list may not be complete as I watched the video at 1.5x speed on marathon but I did write down as many things I found to be very useful to get a model working. A fair warning the points are in no particular order, you may find the topics are all jumbled up.
Before beginning, I want to thank Jeremy Howard, Rachel Thomas, and the entire fast.ai team in making this awesome practically oriented MOOC.
-
Progressive image resolution training: Train the network on lower res first and then increase the resolution to get better performance. This can be thought of as transfer learning from the same dataset but at a different resolution. There is one paper by NVIDIA as well that used such an approach to train GANs.
-
Cyclical learning rates: Gradually increasing the learning rate initially helps to avoid getting stuc
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 |
import fire | |
import fastai | |
from fastai.vision import * | |
from torch import nn | |
from fastai.metrics import top_k_accuracy | |
path = untar_data(URLs.CIFAR) | |
data = ImageDataBunch.from_folder(path, valid='test') | |
class block(nn.Module): |
Copyright 2020 Erica Windisch | |
Permission is hereby granted, free of charge, to any Qualified User 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 so, subject to the following conditions: | |
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. | |
* Qualified User: Any person is a Qualified User if engaging in non-commerical, non-profit, or educational use, or unionized persons engaging in for-profit works. | |
* Non-Qualified User: This software may not be used by any organization that is not considered a Qualified User. Non-Qualified users include non-union employees and contractors acting on behalf of any for-profit corporation, or any employees or contractor |