- Be clear, engaging, pragmatic, and consistent
- Chapters and Sections
- Provide an overview at the beginning of each chapter
- Be consistent in the structure of each section
- Summary
- Exercises
- Scan the QR Code to access discussions
- References (if any)
- Quotes
- Use double quotes
- Symbol Descriptions
- time step t(not t time step)
- Tools, Class, and Functions
- Gluon, MXNet, NumPy, spaCy, NDArray, Symbol, Block, HybridBlock, ResNet-18, Fashion-MNIST, matplotlib
- Consider these as words without accents (``)
- Sequential class/instance, HybridSequential class/instance
- Without accents (``)
backward
function- not
backward()
function
- not
- for loop
- Gluon, MXNet, NumPy, spaCy, NDArray, Symbol, Block, HybridBlock, ResNet-18, Fashion-MNIST, matplotlib
- Terminologies
- Consistently use
- function (not method)
- instance (not object)
- weight, bias, label
- model training, model prediction (model inference)
- training/testing/validation data set
- Distinguish:
- hyperparameter vs parameter
- mini-batch stochastic gradient descent vs stochastic gradient descent
- List
- Consistently use
- Be consistent in math format
- Reference
- the equation above/below (Equation numbering is to be consolidated by the Press)
- the N equations above/below
- Place punctuations within equations if necessary
- e.g. comma and period
- Assignment symbol
- \leftarrow
- Software
- Use OmniGraffle to make figures.
- Export pdf (infinite canvas) in 100%, then use pdf2svg to convert to svg
ls *.pdf | while read f; do pdf2svg $f ${f%.pdf}.svg; done
- Do not export svg directly from Omnigraffle (font size may slightly change)
- Export pdf (infinite canvas) in 100%, then use pdf2svg to convert to svg
- Use OmniGraffle to make figures.
- Style
- Size:
- Horizontal:<= 400 pixels (limited by page width)
- Vertical:<= 200 pixels (exceptions may be made)
- Thickness:
- StickArrow
- 1pt
- arrow head size: 50%
- Font:
- STIXGeneral, 9pt(subscripts/superscripts:6pt)
- Do not italize numbers or parentheses in subscripts or superscripts
- Color:
- Blue as background (text is black)
- Dark:66BFFF
- Light:B2D9FF
- Blue as background (text is black)
- Size:
- Be careful about copyright
- Reference
- e.g., Figure 7.1 (manually)
- matplotlib
- Each line must have <=80 characters (limited by page width)
- Use utils.py to encapsulate classes/functions that are repetitively used
- Give full implementation when it is used for the first time
- Python
- To save space, put several assignments on the same line
- e.g,
num_epochs, lr = 5, 0.1
- e.g,
- Be consistent in variable names
num_epochs
- number of epochs
num_hiddens
- number of hidden units
num_inputs
- number of inputs
num_outputs
- number of outputs
net
- model
lr
- learning rate
acc
- accuracy
- During iterations
- features:
X
- labels:
y
,y_hat
orY
,Y_hat
for X, y in data_iter
- features:
- Data sets:
- features:
features
orimages
- labels:
labels
- DataLoader instance:
train_iter
,test_iter
,data_iter
- features:
- Comments
- Add period at the end of comments
- imports
- import alphabetically
from mxnet.gluon import data as gdata, loss as gloss, nn, utils as gutils
- Print outputs
epoch, lr, loss, train acc, time
- Around 5 lines
- Print variables
- If possible use
x, y
instead ofprint('x:', x, 'y:', y)
at the end of the code block
- If possible use
- String
- Use single quotes
- Other items
nd.f(x)
→x.nd
random_normal
→random.normal
- multiple imports
.1
→1.0
-
- →
1.0
- →
- remove namescope
- Refer to d2lbookhow to add references for figure, table and equations.
- https://www.the-qrcode-generator.com/
- 75pixel, SVG
- The bibfile is
d2l.bib
on the root folder - Use bibtool generate consistent keys, install it by *
brew install bib-tool
- Then after inserting entry into
d2l.bib
, runbibtool -f "%3n(author).%d(year)" d2l.bib -o d2l.bib