# fastai Abbreviation Guide


As mentioned in the [fastai style](style.html), we name symbols
following the *Huffman Coding* principle, which basically means

> Commonly used and generic concepts should be named shorter. You
> shouldn’t waste short sequences on less common concepts.

fastai also follows the life-cycle naming principle: \> The shorter life
a symbol, the shorter name it should have.

which means: - **Aggressive Abbreviations** are used in *list
comprehensions*, *lambda* functions, *local helper* functions. -
**Aggressive Abbreviations** are sometimes used for *local temporary
variables* inside a function. - **Common Abbreviations** are used most
elsewhere, especially for *function arguments*, *function names*, and
*variables* - **Light or No Abbreviations** are used for *module names*,
*class names* or *constructor methods*, since they basically live
forever. However, when a class or module is very popular, we could
consider using abbreviations to shorten its name.

This document lists abbreviations of common concepts that are
consistently used across the whole fastai project. For naming of
domain-specific concepts, you should check their corresponding module
documentations. Concepts are grouped and listed by semantic order. Note
that there are always exceptions, especially when we try to comply with
the naming convention in a library.

<table>
<colgroup>
<col style="width: 14%" />
<col style="width: 30%" />
<col style="width: 13%" />
<col style="width: 41%" />
</colgroup>
<thead>
<tr>
<th></th>
<th><strong>Concept</strong></th>
<th><strong>Abbr.</strong></th>
<th><strong>Combination Examples</strong></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Suffix</strong></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>multiple of something (plural)</td>
<td>s</td>
<td>xs, ys, tfms, args, ss</td>
</tr>
<tr>
<td></td>
<td>internal property or method</td>
<td>_</td>
<td>data_, V_()</td>
</tr>
<tr>
<td><strong>Prefix</strong></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>check if satisfied</td>
<td>is_</td>
<td>is_reg, is_multi, is_single, is_test, is_correct</td>
</tr>
<tr>
<td></td>
<td>On/off a feature</td>
<td>use_</td>
<td>use_bn</td>
</tr>
<tr>
<td></td>
<td>Number of something (plural)</td>
<td>n_</td>
<td>n_embs, n_factors, n_users, n_items</td>
</tr>
<tr>
<td></td>
<td>count something</td>
<td>num_</td>
<td>num_features(), num_gpus()</td>
</tr>
<tr>
<td></td>
<td>convert to something</td>
<td>to_</td>
<td>to_gpu(), to_cpu(), to_np()</td>
</tr>
<tr>
<td><strong>Infix</strong></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>Convert between concepts</td>
<td>2</td>
<td>name2idx(), label2idx(), seq2seq</td>
</tr>
<tr>
<td><strong>Aggressive</strong></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>function</td>
<td>f</td>
<td></td>
</tr>
<tr>
<td></td>
<td>torch input</td>
<td>x</td>
<td></td>
</tr>
<tr>
<td></td>
<td>key, value</td>
<td>k,v</td>
<td>for k,v in d.items()</td>
</tr>
<tr>
<td></td>
<td>other pairs of short scope</td>
<td>p,q</td>
<td>listify(p,q) (same as python’s stdlib)</td>
</tr>
<tr>
<td></td>
<td>index</td>
<td>i</td>
<td></td>
</tr>
<tr>
<td></td>
<td>generic object argument</td>
<td>o</td>
<td>[o for o in list], lambda o: o</td>
</tr>
<tr>
<td></td>
<td>variable</td>
<td>v</td>
<td>V(), VV()</td>
</tr>
<tr>
<td></td>
<td>tensor</td>
<td>t</td>
<td>T()</td>
</tr>
<tr>
<td></td>
<td>array</td>
<td>a</td>
<td>A()</td>
</tr>
<tr>
<td></td>
<td>use first letter</td>
<td></td>
<td><em>w</em>eight -&gt; w, <em>m</em>odel -&gt; m</td>
</tr>
<tr>
<td><strong>Generic</strong></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>function</td>
<td>fn</td>
<td>opt_fn, init_fn, reg_fn</td>
</tr>
<tr>
<td></td>
<td>process</td>
<td>proc</td>
<td>proc_col</td>
</tr>
<tr>
<td></td>
<td>transform</td>
<td>tfm</td>
<td>tfm_y, TfmType</td>
</tr>
<tr>
<td></td>
<td>evaluate</td>
<td>eval</td>
<td>eval()</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>argument</td>
<td>arg</td>
<td></td>
</tr>
<tr>
<td></td>
<td>input</td>
<td>x</td>
<td></td>
</tr>
<tr>
<td></td>
<td>input / output</td>
<td>io</td>
<td></td>
</tr>
<tr>
<td></td>
<td>object</td>
<td>obj</td>
<td></td>
</tr>
<tr>
<td></td>
<td>string</td>
<td>s</td>
<td></td>
</tr>
<tr>
<td></td>
<td>class</td>
<td>cl</td>
<td>cl, classes</td>
</tr>
<tr>
<td></td>
<td>source</td>
<td>src</td>
<td></td>
</tr>
<tr>
<td></td>
<td>destination</td>
<td>dst</td>
<td></td>
</tr>
<tr>
<td></td>
<td>directory</td>
<td>dir</td>
<td></td>
</tr>
<tr>
<td></td>
<td>percentage</td>
<td>p</td>
<td></td>
</tr>
<tr>
<td></td>
<td>ratio, proportion of something</td>
<td>r</td>
<td></td>
</tr>
<tr>
<td></td>
<td>count</td>
<td>cnt</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>configuration</td>
<td>cfg</td>
<td></td>
</tr>
<tr>
<td></td>
<td>random</td>
<td>rand</td>
<td></td>
</tr>
<tr>
<td></td>
<td>utility</td>
<td>util</td>
<td></td>
</tr>
<tr>
<td></td>
<td>filename</td>
<td>fname</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>threshold</td>
<td>thresh</td>
<td></td>
</tr>
<tr>
<td><strong>Data</strong></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>number of elements</td>
<td>n</td>
<td></td>
</tr>
<tr>
<td></td>
<td>length</td>
<td>len</td>
<td></td>
</tr>
<tr>
<td></td>
<td>size</td>
<td>sz</td>
<td></td>
</tr>
<tr>
<td></td>
<td>array</td>
<td>arr</td>
<td>label_arr</td>
</tr>
<tr>
<td></td>
<td>dictionary</td>
<td>dict</td>
<td></td>
</tr>
<tr>
<td></td>
<td>sequence</td>
<td>seq</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>dataset</td>
<td>ds</td>
<td>train_ds</td>
</tr>
<tr>
<td></td>
<td>dataloader</td>
<td>dl</td>
<td>train_dl</td>
</tr>
<tr>
<td></td>
<td>dataframe</td>
<td>df</td>
<td>train_df</td>
</tr>
<tr>
<td></td>
<td>train</td>
<td>train</td>
<td>train_ds, train_dl, train_x, train_y</td>
</tr>
<tr>
<td></td>
<td>validation</td>
<td>valid</td>
<td>valid_ds, valid_dl, valid_x, valid_y</td>
</tr>
<tr>
<td></td>
<td>test</td>
<td>test</td>
<td>test_ds, test_dl</td>
</tr>
<tr>
<td></td>
<td>number of classes</td>
<td>c</td>
<td></td>
</tr>
<tr>
<td></td>
<td>batch</td>
<td>b</td>
<td></td>
</tr>
<tr>
<td></td>
<td>batch’s x parts</td>
<td>xb</td>
<td></td>
</tr>
<tr>
<td></td>
<td>batch’s y parts</td>
<td>yb</td>
<td></td>
</tr>
<tr>
<td></td>
<td>batch size</td>
<td>bs</td>
<td></td>
</tr>
<tr>
<td></td>
<td>multiple targets</td>
<td>multi</td>
<td>is_multi</td>
</tr>
<tr>
<td></td>
<td>regression</td>
<td>reg</td>
<td>is_reg</td>
</tr>
<tr>
<td></td>
<td>iterate, iterator</td>
<td>iter</td>
<td>train_iter, valid_iter</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>torch input</td>
<td>x</td>
<td></td>
</tr>
<tr>
<td></td>
<td>target</td>
<td>y</td>
<td></td>
</tr>
<tr>
<td></td>
<td>dependent var tensor</td>
<td>dep</td>
<td></td>
</tr>
<tr>
<td></td>
<td>independent var tensor</td>
<td>indep</td>
<td></td>
</tr>
<tr>
<td></td>
<td>prediction</td>
<td>pred</td>
<td></td>
</tr>
<tr>
<td></td>
<td>output</td>
<td>out</td>
<td></td>
</tr>
<tr>
<td></td>
<td>column</td>
<td>col</td>
<td>dep_col</td>
</tr>
<tr>
<td></td>
<td>continuous var</td>
<td>cont</td>
<td>conts</td>
</tr>
<tr>
<td></td>
<td>category var</td>
<td>cat</td>
<td>cat, cats</td>
</tr>
<tr>
<td></td>
<td>continuous columns</td>
<td>cont_cols</td>
<td></td>
</tr>
<tr>
<td></td>
<td>category columns</td>
<td>cat_cols</td>
<td></td>
</tr>
<tr>
<td></td>
<td>dependent column</td>
<td>dep_col</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>index</td>
<td>idx</td>
<td></td>
</tr>
<tr>
<td></td>
<td>identity</td>
<td>id</td>
<td></td>
</tr>
<tr>
<td></td>
<td>first element</td>
<td>head</td>
<td></td>
</tr>
<tr>
<td></td>
<td>last element</td>
<td>tail</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>unique</td>
<td>uniq</td>
<td></td>
</tr>
<tr>
<td></td>
<td>residual</td>
<td>res</td>
<td></td>
</tr>
<tr>
<td></td>
<td>label</td>
<td>lbl</td>
<td>(not common)</td>
</tr>
<tr>
<td></td>
<td>augment</td>
<td>aug</td>
<td></td>
</tr>
<tr>
<td></td>
<td>padding</td>
<td>pad</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>probability</td>
<td>pr</td>
<td></td>
</tr>
<tr>
<td></td>
<td>image</td>
<td>img</td>
<td></td>
</tr>
<tr>
<td></td>
<td>rectangle</td>
<td>rect</td>
<td></td>
</tr>
<tr>
<td></td>
<td>color</td>
<td>colr</td>
<td></td>
</tr>
<tr>
<td></td>
<td>anchor box</td>
<td>anc</td>
<td></td>
</tr>
<tr>
<td></td>
<td>bounding box</td>
<td>bb</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>Modeling</strong></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>initialize</td>
<td>init</td>
<td></td>
</tr>
<tr>
<td></td>
<td>language model</td>
<td>lm</td>
<td></td>
</tr>
<tr>
<td></td>
<td>recurrent neural network</td>
<td>rnn</td>
<td></td>
</tr>
<tr>
<td></td>
<td>convolutional neural network</td>
<td>convnet</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>model data</td>
<td>md</td>
<td></td>
</tr>
<tr>
<td></td>
<td>linear</td>
<td>lin</td>
<td></td>
</tr>
<tr>
<td></td>
<td>embedding</td>
<td>emb</td>
<td></td>
</tr>
<tr>
<td></td>
<td>batch norm</td>
<td>bn</td>
<td></td>
</tr>
<tr>
<td></td>
<td>dropout</td>
<td>drop</td>
<td></td>
</tr>
<tr>
<td></td>
<td>fully connected</td>
<td>fc</td>
<td></td>
</tr>
<tr>
<td></td>
<td>convolution</td>
<td>conv</td>
<td></td>
</tr>
<tr>
<td></td>
<td>hidden</td>
<td>hid</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>optimizer (e.g. Adam)</td>
<td>opt</td>
<td></td>
</tr>
<tr>
<td></td>
<td>layer group learning rate optimizer</td>
<td>layer_opt</td>
<td></td>
</tr>
<tr>
<td></td>
<td>criteria</td>
<td>crit</td>
<td></td>
</tr>
<tr>
<td></td>
<td>weight decay</td>
<td>wd</td>
<td></td>
</tr>
<tr>
<td></td>
<td>momentum</td>
<td>mom</td>
<td></td>
</tr>
<tr>
<td></td>
<td>cross validation</td>
<td>cv</td>
<td></td>
</tr>
<tr>
<td></td>
<td>learning rate</td>
<td>lr</td>
<td></td>
</tr>
<tr>
<td></td>
<td>schedule</td>
<td>sched</td>
<td></td>
</tr>
<tr>
<td></td>
<td>cycle length</td>
<td>cl</td>
<td></td>
</tr>
<tr>
<td></td>
<td>multiplier</td>
<td>mult</td>
<td></td>
</tr>
<tr>
<td></td>
<td>activation</td>
<td>actn</td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>CV</strong></td>
<td>computer vision</td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>figure</td>
<td>fig</td>
<td></td>
</tr>
<tr>
<td></td>
<td>image</td>
<td>im</td>
<td></td>
</tr>
<tr>
<td></td>
<td>transform image using opencv</td>
<td>_cv</td>
<td>zoom_cv(), rotate_cv(), stretch_cv()</td>
</tr>
<tr>
<td><strong>NLP</strong></td>
<td>natural language processing (nlp)</td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>token</td>
<td>tok</td>
<td></td>
</tr>
<tr>
<td></td>
<td>sequence length</td>
<td>sl</td>
<td></td>
</tr>
<tr>
<td></td>
<td>back propagation through time</td>
<td>bptt</td>
<td></td>
</tr>
</tbody>
</table>
