- Rõ ràng, trôi chảy, thực tế, và nhất quán
- 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
- 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 (``)
backwardfunction- 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 sumbol
- \leftarrow
- Software
- Use OmniGraffle to make figures.
- Export pdf (infinite canvas) in 100%, then use pdf2svg to convert to svg
ls | 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:
- Arial, 9pt(subscripts:7pt)
- 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_hatorY,Y_hat for X, y in data_iter
- features:
- Data sets:
- features:
featuresorimages - 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, yinstead 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.ndrandom_normal→random.normal- multiple imports
.1→1.0-
- →
1.0
- →
- remove namescope
- Internal hyperlinks
- In the “Linear Regression” section
- External hyperlinks
- Append references at the end of each section
- Google Scholar: APA format
- All references are to be consolidated by the Press